Deutsch
Forum

Tastenabfrage in neu erzeugtem Fernster...

 

Michael
Axtmann
...will nicht klappen!??

Hallo,
nach ewiger rumprobiererrei und Suche über die XProfan Hilfe, komme ich nun doch mit dieser banalen Sache hier her:
Wenn ich aus dem Hauptfenster heraus ein neues Fenster erzeuge, wird mein waitinput nur mit Clicks auf dei dort befindlichen Buttons verlassen, jedoch nicht per Tastendruck! Was mache ich falsch????? Hab ich was vergessen aufs neue Fenster umzuleiten??
Gruß
PS:Im Anhang ein kleines Beispiel! Der Knopf sollte mit der "Space" Taste bedient werden können! In beiden Fenstern!!

1 kB
Kurzbeschreibung: Testprogramm
Hochgeladen:24.09.2012
Ladeanzahl112
Herunterladen
 
24.09.2012  
 




E.T.

...

PROC FENSTER2

    HWND% = create("window",%hwnd,"FENSTER2", 100,100, 640,480)
    setactivewindow(HWND%)
    button2& = Create("Button",HWND%,"Schließen",50,50,100,50)
    'Mittels Tab-Taste erstmal auf den Button2 focusieren oder
    SetFocus(Button2&)'Focus sofort auf den Button

    while xe%=1

        ...

Das 2. Fenster würde ich aber auf keinen Fall HWND% nennen...
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
24.09.2012  
 




Michael
Axtmann
Hi,
danke, funktioniert zwar, aber ich denke das Problem wird "nur umschifft", denn wenn ich im 2.Fenster zur Kontrolle nach waitinput ein print %scankey einbau, dann schreibt er mir "0" !!
Nach waitinput im Hauptfenster schreibt er den richtigen Scancode....
siehe Bsp.
Grüße

1 kB
Kurzbeschreibung: Test 2
Hochgeladen:24.09.2012
Ladeanzahl116
Herunterladen
 
24.09.2012  
 




E.T.
Jo, hast recht mit dem "umschiffen": Mit dem setzen des Focus auf den Button wird dann selbiger mit der Leertaste "betätigt" - Denkfehler.
Hab jetzt mal 'ne Weile probiert und feststellen müssen, das wohl in einem anderen (focusiertem) Fenster als wie im Hauptfenster die meisten Systemvariablen (wozu ja scankey gehört) das waitinput nicht durchbrechen. Beweis: mache in deinem Bsp. das Hauptfenster aktiv, dann reagiert dein Fenster2 auf die Leertaste und wird geschlossen.
Das müssen wir wohl Roland mal als "Bug oder vermeintlicher" nahe legen  

Hab jetzt mal auf die schnelle alles so "umgebastelt", das es mit dem Fenster2 funktioniert: Das Zauberwort (oder Nothilfe): SubClassing !!

Hab einfach mal dein Fenster2 "gesubclasst" und die Message 257 (loslassen der Leertaste)  abgefangen, schon funktioniert es.

Habe allerdings den Aufruf des 2. Fensters per Leertaste mal rausgenommen:
Beim Aufrufen reagiert scankey auf das drücken der Taste (und öffnet das "Fenster2),das loslassen würde dann vom 2. Fenster sofort wieder mit Schließen  quittiert.

Also am besten mit SubClassing  beschäftigen und Roland den Fehler suchen lassen, warum nur im Hauptfenster auf die Tastatur reagiert wird

Ach ja, der auf die schnelle "umgeschraubte" Quelltext:
declare e%,xe%,taste%
declare button1&,button2&
declare HWND%
cls
e% = 1
xe%=1
button1& = Create("Button",%HWND,"Start",50,50,50,50)

PROC FENSTER2

    HWND% = create("window",%hwnd,"FENSTER2", 100,100, 640,480)
    setactivewindow(HWND%)
    button2& = Create("Button",HWND%,"Schließen",50,50,100,50)
    SubClass HWND% , 1

    while xe%=1

        waitinput

        if clicked(button2&)

            print "Fenster2 durch Button geschlossen geschlossen!!"
            xe% = 0
            destroywindow(HWND%)

        endif

    endwhile

ENDPROC

SubClassProc

    If SubClassMessage(HWND%, 257)'Leertaste loslassen

        print "Fenster2 in SubClassProc durch Message 257 (Leertaste losgelassen) geschlossen!!"
        xe% = 0
        destroywindow(HWND%)

    endif

endproc

while e%=1

    waitinput

    if clicked (button1&)

        xe% = 1
        FENSTER2

    endif

endwhile

end

Gute Nacht !!!
 
Grüße aus Sachsen... Mario
WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte...
25.09.2012  
 



... oder einfach HotKeys per addHotKey( ...
 
25.09.2012  
 




Michael
Axtmann
Hi,
danke, dass Ihr euch das mal angeschaut habt! Hatte schon öfters damit gekämpft und einfach nur gedacht ich bin zu doof, aber das waitinput wird definitiv manchmal einfach nicht verlassen!!
Grüße
 
25.09.2012  
 



Auch bei Tasten die mit addHotKey angelegt werden?
 
25.09.2012  
 



Huhuh?
 
11.10.2012  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.750 Betrachtungen

Unbenanntvor 0 min.
Mindanao06.06.2017
GDL08.09.2014
Heinz Bernhard28.08.2013
holmol9313.06.2013
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Michael Axtmann (3x)
iF (3x)
E.T. (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