RETURN aus SETKEY()-Codeblock beendet READ [ERLEDIGT]

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Antworten
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

RETURN aus SETKEY()-Codeblock beendet READ [ERLEDIGT]

Beitrag von dtmackenzie »

Ungewollt, passiert nicht in Clipper.
Textmodus.
Gibt es eine Abhilfe?

Danke!
David
Zuletzt geändert von dtmackenzie am Do, 28. Mai 2009 15:01, insgesamt 1-mal geändert.
Viele Grüße,
David
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Re: RETURN aus SETKEY()-Codeblock beendet READ

Beitrag von dtmackenzie »

Hmmm... passiert nicht bei allen Tasten - passiert doch bei K_PGUP/K_PGDN aber nicht bei Funktionstasten...
Außerdem verhält sich

Code: Alles auswählen

SetAppEvent(xbeK_PGUP, {|| ...})
anders als

Code: Alles auswählen

SETKEY(K_PGUP, {|| ...})
u.s.w...
Ich werde weiter in diese Richtung probieren dann berichten.
Viele Grüße,
David
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: RETURN aus SETKEY()-Codeblock beendet READ

Beitrag von AUGE_OHR »

hi,
verwendest du SetMouse() ?

solange du im VIO Modus bist wird die GETSYS.PRG benutzt, erst wenn du SetMouse() benutzt wird
die GETSYSX.PRG benutzt welches auf Events reagiert.
gruss by OHR
Jimmy
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Re: RETURN aus SETKEY()-Codeblock beendet READ

Beitrag von dtmackenzie »

Hallo Jimmy,

Danke für Dein Tipp mit GETSYS.PRG und GETSYSX.PRG - das hat mir geholfen, eine Lösung zu finden.
Setmouse() verwende ich nicht - ich versuche erst unsere interne Clipper-Anwendung vollständig in den Xbase++ Textmodus zu konvertieren.
Trotzdem werden Funktionen in GETSYSX.PRG ausgeführt - ich habe in meiner Verzweifelung diese 2 Dateien mit in unserer Anwendung kompiliert damit ich sie mit dem Debugger durchsteppen könnte.

Folgende Zeilen (133/134) in GETSYSX.PRG haben das Übel verursacht:

Code: Alles auswählen

   CASE nEvent == xbeK_PGUP .OR. nEvent == xbeK_PGDN
        oGet:exitState := GE_WRITE
Zum Glück konnte ich nach lesen des Alaska-Quellcodes dieses Verhalten unterdrücken wie folgt:

Code: Alles auswählen

    bPGUP := SetAppEvent(xbeK_PGUP, {|| 0 })
    bPGDN := SetAppEvent(xbeK_PGDN, {|| 0 })
    SETKEY(K_PGUP,      {|| ALERT("PGUP") })
    SETKEY(K_PGDN,      {|| ALERT("PGDN") })
wobei die ALERTs natürlich nur beispielhaft für die gewollte Funktionen stehen.

Es ist ja manchmal nicht so leicht mit der Kompatibilität!
Viele Grüße,
David
Antworten