Deutsch
Forum

Erledigt: %key-Problem ...

 

Michael
Punkt
... oder bin ich einfach blöd? (Anm. Das war nur eine rethorische Frage )

%key funktioniert bei mir nicht.Ist so was möglich?
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.
 
XProfan 11, Windows XP (2GB RAM), XProfEd
17.08.2009  
 



Ich meine, XProfan reagiert hier ganz ehrlich, wie Windows das auch handhabt bzw. unterscheidet.

Gib mal in der Hilfe "Tastatur" ein, es gibt viele Möglichkeiten um an "Tasteninfos" heranzukommen, jede hat sicherlich ihre Vor- und Nachteile.

Ein Weg über UserMessages könnte 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 
 
17.08.2009  
 




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 Hilfe 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.
 
XProfan 11, Windows XP (2GB RAM), XProfEd
18.08.2009  
 



Klar, man muss halt unterscheiden, wann wie wo welche Taste abgefragt werden soll bzw. für welches Control.

Am Einfachsten z.B. für Spiele ist deshalb meist das normale Hauptfenster für das die meisten Tastenbefehle zutreffen.
 
18.08.2009  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.531 Betrachtungen

Unbenanntvor 0 min.
Georg16.01.2021
H.Brill09.02.2019
holmol9313.06.2013
Julian Schmidt06.10.2012
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

iF (2x)
Michael Punkt (2x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie