| |
|
|
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 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 |
|
|
| |
|
|
|
| Sicher dass nicht eine weitere andere Message das Waitinput zusätzlich unterbricht? |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
| |
|
| |
|
|
|
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 ▲ |
|
|
|