xbpPushButton mit <RETURN> bestätigen [ERLEDIGT]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
KlausL
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Fr, 23. Okt 2009 11:38

xbpPushButton mit <RETURN> bestätigen [ERLEDIGT]

Beitrag von KlausL »

Hallo,

gibt es eine Möglichkeit, einen xbpPushButton mit der <RETURN>-Taste zu bestätigen? Ich arbeite mit Xbase++ 1.9 und XClass 4.0. Durch die Einstellungen ::EnableClipperKeys(.T.) und ::EnableEscKey(.T.) kann ich zwar z. B. die SLEs (dsSle) mit <RETURN> verlassen, nur bei den Buttons funktioniert das nicht.

Viele Grüße,

Klaus
Zuletzt geändert von KlausL am Di, 01. Jan 2013 15:13, insgesamt 1-mal geändert.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: xbpPushButton mit <RETURN> bestätigen

Beitrag von Jan »

Hallo Klaus,

ich arbeite nicht mit XClass. Aber ich erzeuge dieses Verhalten durch diese Eventschleife in der Main()

Code: Alles auswählen

DO WHILE .T.
   nEvent := AppEvent(@mp1, @mp2, @oEventXbp)

   // Für einige XBase-Parts ein anderes Tastaturverhalten einsetzen
   IF nEvent == xbeP_Keyboard                                                                      //Ist das überhaupt ein Tastaturevent? Ansonsten aus Performancegründen die ganze Schleife überspringen
      IF mp1 = xbeK_ENTER                                                                          // Ist das ein Enter? Darum geht es schließlich.
         IF oEventXbp:isDerivedFrom("XBPPUSHBUTTON")                                               // Ist das ein Pushbutton?
            PostAppEvent(xbeP_Activate, NIL, NIL, oEventXbp)                                       // Dann auslösen, wie mit Leertaste
          ELSEIF oEventXbp:isDerivedFrom("XbpBrowse")                                              // Ist das eine Browse-Spalte?
            PostAppEvent(xbeK_RIGHT, NIL, NIL, oEventXbp)                                          // Dann in die nächste Spalte springen, wie mit PfeilRechts
          ELSEIF oEventXbp:isDerivedFrom("XbpCheckBox")                                            // Ist das eine Checkbox?
            PostAppEvent(xbeK_TAB, NIL, NIL, oEventXbp)                                            // Dann verlasse, wie mit Tab
          ELSEIF oEventXbp:isDerivedFrom("XbpComboBox")                                            // Ist das eine Combobox?
            PostAppEvent(xbeK_TAB, NIL, NIL, oEventXbp)                                            // Dann verlasse, wie mit Tab
          ELSEIF oEventXbp:isDerivedFrom("XbpSle")                                                 // Ist das ein SLE?
            PostAppEvent(xbeK_TAB, NIL, NIL, oEventXbp)                                            // Dann verlasse, wie mit Tab
         ENDIF
       ELSEIF mp1 = xbeK_ALT_F4                                                                    // Möchte jemand das Programm mit Alt F4 beenden?
         mp1 := xbeK_ALT                                                                           // Das Menü aktivieren
      ENDIF
   ENDIF

   oEventXbp:handleEvent(nEvent, mp1, mp2)
ENDDO
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
peternmb
1000 working lines a day
1000 working lines a day
Beiträge: 525
Registriert: Mi, 01. Feb 2006 16:22
Wohnort: 06618 Naumburg

Re: xbpPushButton mit <RETURN> bestätigen

Beitrag von peternmb »

oder einfach den Keyboard-Slot des Buttons verwenden:

Code: Alles auswählen

   pb1:keyboard:= {|mp1,mp2,oXbp|IIF(mp1=xbeK_RETURN,mache_das(),NIL) }
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: xbpPushButton mit <RETURN> bestätigen

Beitrag von Jan »

Hallo Peter,

stimmt, das geht auch. Dann muß man das aber bei jedem einzelnen Button machen. Beim Eintrag in die Eventschleife muß man sich aber bei zukünftigen Buttons nicht mehr drum kümmern.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: xbpPushButton mit <RETURN> bestätigen

Beitrag von UliTs »

Am saubersten ist es, eine eigene Klasse von XbpPushbutton abzuleiten und darin die gewünschte Eigenschaft zu implementieren.
Dann funktioniert es auch grundsätzlich ohne die Eventschleife verändern zu muessen.

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
KlausL
UDF-Programmierer
UDF-Programmierer
Beiträge: 54
Registriert: Fr, 23. Okt 2009 11:38

Re: xbpPushButton mit <RETURN> bestätigen

Beitrag von KlausL »

Hallo Jan, Peter, Uli,

zunächst nochmals Danke für Eure Lösungen.

ich denke, ich werde es mit der Keyboard-Methode realisieren.

Viele Grüße,

Klaus
Antworten