Italia
Foro

Erledigt: Problem mit UserMessage in SubClassProc

 

Uwe
''Pascal''
Niemeier
Hi Leute!

Folgende Situation:
Innerhalb eine SubClassProc  wird - sobald ein bestimmtes Ereignis erkannt wird - eine selbstdefinierte Usermessage ans Hauptfenster geschickt.
Der Zweck ist, auf diese Weise Parameter in die Eingabeschleife des Hauptprogrammes einzubringen.
Außerdem ist sichergestellt, daß WaitInput  durchbrochen wird.
(Anwendungsbeispiel TreeView oder GridBox: Ändern der Auswahl per Cursortasten z.B. wird von WaitInput  nicht erkannt)

Das Problem ist, daß die Message offensichtlich nur einmal gesendet wird, aber in der Eingabeschleife zweimal(!) ankommt:
KompilierenMarkierenSeparieren
window 600,600
print Bitte Leertaste  drücken!
 $H Messages.ph
 $H commctrl.ph
subclassproc---------------------------------------------

if subclassmessage(%hwnd,~WM_KEYDOWN)

    if &swparam=32

        sendmessage(%hwnd,5000,11,22)
        print Gesendet!

    endif

endif

endproc--------------------------------------------------
usermessages 5000
subclass %hwnd,1

while 1

    waitinput
    print Empfangen: ,%umessage,&uwparam,&ulparam

endwhile


Natürlich läßt sich das Ganze irgendwie hinbiegen (Timer, globale Variablen usw.), aber eigentlich sollte das doch funktionieren?

BTW: Bei Verwendung der 11.2ß zeigt sich außerdem, daß %UMessage  zwar zurückgesetzt wird, nicht aber &UlParam  + &UwParam . Absicht?

SeeYou
Pascal
 
18.03.2009  
 



Sicher dass nicht eine weitere andere Message das Waitinput zusätzlich unterbricht?
 
18.03.2009  
 




Uwe
''Pascal''
Niemeier
Hi iF!

In der 11.2ß wird %UMessage  durch WaitInput  wieder zurückgesetzt ; anders gesagt: %UMessage  ist nur dann <> 0, wenn auch eine Usermessage empfangen wurde (so habe ich es jedenfalls verstanden). Da wird dieser Effekt noch deutlicher.
 
18.03.2009  
 



Stimmt!
 
18.03.2009  
 




RGH
Uwe Pascal Niemeier
Das Problem ist, daß die Message offensichtlich nur einmal gesendet wird, aber in der Eingabeschleife zweimal(!) ankommt


Ja, das kann seit 10.0 passieren. Der Grund liegt darin, dass seit 10.0 die Userrmessages gestackt sind, was dazu führte, dass sie tatsächlich nur im Waitinput ausgewertet wurden. Obwohl nie vorgesehen funktionierten die Usermessages vorher aber auch ohne Waitinput, was einigen nun fehlte. Der Versuch, das wieder hinzubekommen, hat offensichtlich in bestimmten Situationen Nebeneffekte.

Für dienächste Version probiere ich hier eine andere Lösung.

Uwe Pascal Niemeier
BTW: Bei Verwendung der 11.2ß zeigt sich außerdem, daß %UMessage  zwar zurückgesetzt wird, nicht aber &UlParam  + &UwParam . Absicht?


Ja, das war schon immer so. Die beiden Systemvariablen behalten ihren Wert, bis eine neue Usermessage ihn verändert. Die Werte sind also nur dann gültig, wenn %UMessage ungleich 0 ist.

Saluto
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
19.03.2009  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

919 Views

Untitledvor 0 min.
H.Brill06.06.2021
Rainer Hoefs12.06.2019
AndreasS29.11.2018
Ernst28.04.2016
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

Uwe ''Pascal'' Niemeier (2x)
iF (2x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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