DCREAD Handlerblock ESC abfangen

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

DCREAD Handlerblock ESC abfangen

Beitrag von Manfred »

Nächstes Problem,

weil beim Druck auf die ESC Taste der gesamte Dialog geschlossen wird ohne Rückfrage, aber beim Abschalten über NOESCAPEKEY man mit ESC auch nicht mehr eine Eingabe Abbrechen kann, habe ich versucht über HANDLERBLOCK die ESC Taste abzufangen um dann über eine Abfrage den User zu fragen, ob er abbrechen will um dann entsprechende Schritte einleiten zu können. Dabei ist es auch geblieben. Irgendwie bekomme ich es nicht hin. Ich möchte eigentlich eine Funktion aufrufen, die dann z.B. Parts, die disabled sind wieder enabled, oder was weiß ich, was mit in Zukunft noch so alles einfällt. Hat jemand einen Tipp parat, wie man sowas löst?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: DCREAD Handlerblock ESC abfangen

Beitrag von Bertram Hansen »

Hallo Manfred,

eventuell hilft Dir das Beispiel weiter:

Code: Alles auswählen

*************************************************************************
/* Handlerblock Methode für DCREAD GUI in Maskread()
 * Parameters -> nEvent    - ist der numerische Ereigniscode, der das Ereignis kennzeichnet, das verarbeitet werden soll.
 *                           Das ist in der Regel der Rückgabewert der Funktion AppEvent() (siehe dort).
 *             -> mp1      - ist der erste Message-Parameter des Ereignisses, das verarbeitet werden soll.
 *                           Das ist in der Regel der erste Parameter der Funktion AppEvent().
 *             -> mp2      - ist der zweite Message-Parameter des Ereignisses, das verarbeitet werden soll.
 *                           Das ist in der Regel der zweite Parameter der Funktion AppEvent().
 *             -> oXbp     - A pointer to the object creating the event
 *             -> oDlg     - A pointer to the main dialogue object
 *             -> aGetlist - A pointer to the GetList array
 *             -> aRef     - A pointer to an optional Reference array that was passed to DC_ReadGets()
 *             -> lOk      - A logical value that is .TRUE. if the OK button was clicked and .FALSE. if CANCEL was clicked
 * 
 */
FUNCTION MyHandler( nEvent, mp1, mp2, oXbp, oDlg, aGetList, aRef, lOk )
   LOCAL cRet := DCGUI_NONE
   
   IF nEvent == xbeP_Keyboard
      IF mp1 == xbeK_ESC
         // Code
         // IF Bedingung
         //   cRet := DCGUI_CLEAR 
         // ENDIF
      ENDIF   
   ENDIF
RETURN cRet
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCREAD Handlerblock ESC abfangen

Beitrag von Manfred »

Hi Bertram,

das mit dem DCGUI_NONE habe ich ausprobiert, aber es wird weiterhin der komplette Dialog beendet. Ich habe alle DCGUI_XXX ausprobiert, bis auf die, die zum Vorgänger zurückgehen, oder so. Nichts war so, wie ich es brauchen könnte. Irgendwo liegt da der Hase im Pfeffer.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCREAD Handlerblock ESC abfangen

Beitrag von Manfred »

Ich habe mir den Vorgang einmal im Debugger angesehen. Roger fragt zum Schluß wieder mp1 ab und da steht ja ESC drin. Somit wird immer abgebrochen. Ich verstehe das nicht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCREAD Handlerblock ESC abfangen

Beitrag von Wolfgang Ciriack »

Manfred,
schau dir doch mal DCGET OPTIONS ABORTQUERY, CLOSEQUERY, EXITQUERY und QUITQUERY an, da kannst du doch eigene Funktionen zum Beenden nicht beenden aufrufen.
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCREAD Handlerblock ESC abfangen

Beitrag von Manfred »

Hi Wolfgang,

die habe ich schon durch. Irgendwie will es nicht so, wie ich es haben will. Ich löse es jetzt erstmal anders. Irgendwann kommt schon die Erleuchtung.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten