xbeK_ALT

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

xbeK_ALT

Beitrag von Wonderer »

Hallo,

ich habe eine Frage zur Tastaturabfrage.

In meiner Event-Schleife frage ich das Tastatur-Ereignis ab. Danach überprüfe ich auf die verschiedenen Tasten um darauf zu reagieren.
Jetzt möchte ich, dass beim Drücken der Taste ESC, genau das passiert, was ausgelöst wird, wenn ich bei Existenz eines Menüs die ALT-Taste drücke. Also das Focus setzen auf den Menüpunkt 1 ohne das Menü zu öffnen.
Dazu habe ich folgendes geschrieben in der Schleife.


if mp1 == xbeK_ESC
nEvent := xbeP_Keyboard
mp1 := xbeK_ALT
endif

Mit diesem Code tut sich aber nichts.

wenn ich statt dessen für den TastenCode die Konstante xbeK_ALT_D einsetze, funktioniert es, aber halt nicht wie ich es möchte sondern mit der direkten Auswahl des 1. Punktes.

Ich habe mal versucht die Alt-Taste separat abzufangen.
Der Code innerhalb der IF-Verzweigung wird nicht ausgeführt aber das Event schon? (hatte als Test ne MsgBox anzuzeigen, die kam nicht aber das Menü wurde aktiviert)

Hat jemand schon mal mit der Alt-Taste gearbeitet, oder weiß wie ich da weiterkomme?

Danke schon mal, Ralf...
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Ralf.

Ich mag mich irren, aber die Alt-Taste alleine löst m.E. kein Keyboard-Event aus. Ersatzweise könntest Du (in einem getrennten Thread?) mit AppKeyState(xbeK_ALT) ihren Status überwachen und dann mit PostAppEvent() irgendwas auslösen.

BTW, wir freuen uns über die Vorstellung neuer Forenmitglieder im "Guten Tag, mein Name ist ... und ich bin Programmierer"-Forum. :)
Herzlich,
Tom
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

Beitrag von Schubi »

Hallo Ralf,

sieh mal in der xBase++ Help unter AppkeyState() nach.
Da findest Du alles dazu.
Grüße Steffen
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Beitrag von Wonderer »

Tom hat geschrieben:Hallo, Ralf.

Ich mag mich irren, aber die Alt-Taste alleine löst m.E. kein Keyboard-Event aus. Ersatzweise könntest Du (in einem getrennten Thread?) mit AppKeyState(xbeK_ALT) ihren Status überwachen und dann mit PostAppEvent() irgendwas auslösen.
Ok.
Thread? Das muss ich mir erstmal anschauen, arbeite erst seit 2 Wochen mit Clipper.

Aber irgendein Event muss die Taste auslösen, sonst würde ja keine Aktion dahinterstehen können für das Menü. Nur welches?

MfG, Ralf
Zuletzt geändert von Wonderer am Fr, 07. Jul 2006 10:14, insgesamt 1-mal geändert.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Wonderer hat geschrieben: arbeite erst seit 2 Wochen mit Clipper.
nur mit Clipper oder auch mit Xbase++ ?

Clipper ist in einer anderen Rubrik. Xbase++ ist zwar kompatibel mit Clipper, aber verhält sich dennoch nicht immer gleich.
Daher ist die richtige Rubrik wichtig.
Gruß
Hubert
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Beitrag von Wonderer »

brandelh hat geschrieben: nur mit Clipper oder auch mit Xbase++ ?
seit 2 Wochen Clipper und 1 Woche XBase++ Alaska.
In Clipper gibt es die Tasten-Konstante xbeK_ALT nicht aber bei XBase++.
Daher nahm ich an man kann sie auch abfangen.

Welches Ereignis wird nun ausgelöst beim Drücken der Alt-Taste?

MfG, Ralf...
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

Beitrag von Schubi »

Wonderer hat geschrieben: Welches Ereignis wird nun ausgelöst beim Drücken der Alt-Taste?
In xBase++ wird kein Ereignis ausgelöst, lediglich ein Status-Wert wird gesetzt, den Du mit AppKeyState(xbeK_ALT) ermitteln kannst.
Das sind die Rückgabewerte:

APPKEY_IDLE - Die Taste ist nicht gedrückt
APPKEY_DOWN - Die Taste ist gedrückt
Grüße Steffen
Antworten