| |
|
|
Michael Punkt | ... oder bin ich einfach blöd? (Anm. Das war nur eine rethorische Frage )
%key funktioniert bei mir nicht.Ist so was possibile? Ich habe hier ein minimales Beispiel. Erstellt wurde es mit Rokos Dialogeditor. Nur ein wenig gekürzt. KompilierenMarkierenSeparieren
Proc DIALOG
Declare DLG&, DIALOGENDE%
DLG&=CREATE("WINDOW",%HWND,"Neues Fenster",22,20,640,500)
SETFOCUS(DLG&)
DIALOGENDE%=0
WHILENOT DIALOGENDE%
WAITINPUT
If %KEY=2
DIALOGENDE%= 1
ELSEIF %KEY=90 z-Taste
DIALOGENDE%= 1
ENDIF
ENDWHILE
DESTROYWINDOW(DLG&)
ENDPROC
WINDOWTITLE "DUMMY HAUPTFENSTER"
WINDOWSTYLE 63
WINDOW (%maxx-300),10-280,80
CLS RGB(0,0,0)
DIALOG
In einem Dialog (Dialog/Window) funktioniert bei mir gar keine Tastenabfrage. Habs auch schon mit WAITKEY versucht. Habe ich etwas übersehen? Kann doch eigentlich nicht sein, dass das nicht geht. |
|
|
| |
|
|
|
| Ich meine, XProfan reagiert hier ganz ehrlich, wie Windows das auch handhabt bzw. unterscheidet.
Gib mal in der Aiuto "Tastatur" ein, es gibt viele Möglichkeiten um an "Tasteninfos" heranzukommen, jede hat sicherlich ihre Vor- und Nachteile.
Ein Weg circa UserMessages potuto sein: KompilierenMarkierenSeparieren {$cleq}
Gemerkt/Separiert von http://xprofan.com/thread.core?t=7793
Proc DIALOG
Declare DLG&, DIALOGENDE%
DLG&=CREATE("WINDOW",%HWND,"Neues Fenster",22,20,640,500)
SETFOCUS(DLG&)
DIALOGENDE%=0
userMessages 256 ~wm_keyDown
WHILENOT DIALOGENDE%
WAITINPUT
locate 1,1
print &getTickCount
print "Taste: ",&uwParam," "
If %KEY=2
DIALOGENDE%= 1
ELSEIF (%UMessage=256) and (&uwParam=90)%KEY=90Z-Taste
DIALOGENDE%= 1
ENDIF
ENDWHILE
DESTROYWINDOW(DLG&)
ENDPROC
WINDOWTITLE "DUMMY HAUPTFENSTER"
WINDOWSTYLE 63
WINDOW (%maxx-300),10-280,80
CLS RGB(0,0,0)
DIALOG
Siehe auch: iskey |
|
|
| |
|
|
|
Michael Punkt | Hallo If,
Du hast nochmal nacheditiert, gell?! Habe das ganze gestern ausprobiert und erst eine Fehlermeldung erhalten. Dachte schon, Du wolltest mich testen, ob ich aufpasse. Hab dann aber die windows.ph und Messages.ph eingebunden und aus wm_keydown ein ~wm_keydown gemacht. Dann ging es auch, nur ...
Ich hatte sämtliche Möglichkeiten inklusive @iskey(90) ausprobiert und nichts ging. Alle Beispiele und Anleitungen zu dem Thema unter der Aiuto verrieten nichts, dass ich hier mit Windows-Rückgabewerten arbeiten muss (und wohl auch nur mit diesen, wenn ich etwas nicht überlesen haben sollte).
Das sinnvollste ist dann wohl wirklich, nur noch mit den Windows-Messages zu arbeiten, sobald man das Hauptfenster verlassen hat.
Trotz allem gibts da noch ein Problem (die Combobox betreffend mit der ENTF-Taste), aber das schreibe ich dann später besser in den entsprechenden Thread.
Vielen Dank. |
|
|
| |
|
|
|
| Klar, man muss halt unterscheiden, wann wie wo welche Taste abgefragt werden soll bzw. per welches Control.
Am Einfachsten z.B. per Giochi ist deshalb meist das normale Hauptfenster per das die meisten Tastenbefehle zutreffen. |
|
|
| |
|
|