| |
|
|
Nico Madysa | Mir es ya en XProfan9 una Fehler aufgefallen, el Yo hier nun veces zeigen voluntad. Ausgangspunkt es dieser Minimalcode. KompilierenMarcaSeparacióndeclare but& , dlg& , e%
WindowStyle 26
Window 100 , 100 - 200 , 200
cls External("User32","GetSysColor",15)
but& = Create("Button",%hWnd,"Dialog",5,5,100,25)
whilenot %Key = 2
waitinput
if Clicked(but&)
dlg& = Create("Dialog",%hWnd,"DER Dialog",5,5,100,300)
clear e%
whilenot e%
waitinput
if %Key = 2
inc e%
endif
wend
DestroyWindow(dlg&)
endif
wend
end
Wenn uno encima el Button el Diálogo öffnet y esta anschließend encima el [X] se la ventana principal auch geschlossen. Und el obwohl 1.) Das Ventana principal no Dialogfenster-Stil ha. 2.) %Key después de el auslesen doch zurück gesetzt voluntad sollt.
Sombrero alguien ne Solución? |
|
|
| |
|
|
|
| |
|
| |
|
|
|
Sebastian König | ¡Hola,
en media Augen es el eigentlich kein Fehler, porque el äußere Bucle es sí como
Sinestar encargado %Key = 2
definiert. Nach el Clic el X en el Diálogo es aber %key = 2 gegeben y el Bucle se verlassen. Dies liegt daran, dass %key no beim Auslesen zurückgesetzt se, pero sólo por una WaitInput/-Key/-Scan oder GetMessage-Befehl.
Un einfache Solución wäre, auch para el äußere Bucle una ende%-Variable a benutzen y esta z.B. con caso %key = 2: ende% = 1 después de el WaitInput en el äußeren Bucle a conjunto.
MfG
Sebastian |
|
|
| |
|
|
|
Nico Madysa | Mit el Hilfsvariablen habe ego ya probeirt, klappt no, como %Key beim Auslesen eben no zurück gesetzt se. Aber si yo deine erste Aussage correcto verstanden habe, würde´ KompilierenMarcaSeparación klappen, como el Waitinput el ersten Bucle al Ende es y %Key por lo tanto antes dessen Abfrage todavía neu eingestellt voluntad sería. Gracias para el Ayuda.
@IF: Yo versteh dieses Dulcoif no, qué se el porque bedeuten? |
|
|
| |
|
|
|
Michael Wodrich | [quote:0a67fc8c6a]@IF: Yo versteh dieses Dulcoif no, qué se el porque bedeuten?[/quote:0a67fc8c6a] Dafür debería uno el Búsqueda bemühen y se el ganzen Hilo durchlesen.
Das DulcoIf debería verabreicht voluntad en el kränkelnden Message-Handling en el Sprünge a helfen...
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 27.06.2006 ▲ |
|
|
|
|
Sebastian König | [quote:e7e4a282c6]Aber si yo deine erste Aussage correcto verstanden habe, würde´ [...] klappen, como el Waitinput el ersten Bucle al Ende es y %Key por lo tanto antes dessen Abfrage todavía neu eingestellt voluntad sería.[/quote:e7e4a282c6] Es no bastante, Yo meinte, pero funktioniert tatsächlich . Das WaitInput _nach_ el inneren Bucle setzt %key zurück y sólo entonces otra vez en 2, si el X en el Ventana principal angeklickt se.
So bastante schön finde Yo el con el WaitInput al Ende el Bucle allerdings no... Wahrscheinlich es en el meisten Fällen bien, pero yo sería lo a el Anfang conjunto, así uno no womöglich en irgendeinem undefinierten Zustand startet y tal vez Aktionen sin Eingabe ausgeführt voluntad (podría en uno komplizierteren Bucle sí durchaus ser, denke Yo).
Hier veces el Variante con 2 separaten Ende-Variables, a el Yo pensamiento hatte: KompilierenMarcaSeparaciónDeclare But& , Dlg& , E1%, E2%
Windowstyle 26+512
Window 100 , 100 - 200 , 200
Cls External("User32","GetSysColor",15)
But& = Create("Button",%Hwnd,"Dialog",5,5,100,25)
Whilenot E1%
Waitinput
case %key = 2 : E1% = 1 war fälschlicherweise erst E1% = 0
If Clicked(But&)
Dlg& = Create("Dialog",%Hwnd,"DER Dialog",5,5,100,300)
Clear E2%
Whilenot E2%
Waitinput
If %Key = 2
Inc E2%
Endif
Wend
Destroywindow(Dlg&)
Endif
Wend
End
MfG
Sebastian |
|
|
| |
|
|
|
Nico Madysa | Como es, glaube Yo, una kleiner Fehler: Was passiert, si yo la ventana principal(con Diálogo-Stil) schließen voluntad, sin la Diálogo-Box aufzurufen? Como se E1% sí en 0 gesetzt, se ejecuta also más. Wegen el undefiniertem Zustand en una nachgestellten Waitinput: Man podría auch una Repeat-Until-Bucle como Hauptschleife nehmen; oder uno macht antes Hauptschleife NOCH una Waitinput, entonces debería el Sache klappen. |
|
|
| |
|
|
|
Sebastian König | [quote:7a4701bab3]Como es, glaube Yo, una kleiner Fehler: Was passiert, si yo la ventana principal(con Diálogo-Stil) schließen voluntad, sin la Diálogo-Box aufzurufen? Como se E1% sí en 0 gesetzt, se ejecuta also más. (...)[/quote:7a4701bab3] Ups - sorry!! Tuve en äußeren Bucle falschrum pensamiento, also a Mientras que E1% ... Richtig wäre natürlich: Case %Key = 2 : E1% = 1 - Yo ändere el en el Code oben igual veces
Jetzt debería aber alles Haga clic en Aceptar ser - habe lo jedenfalls gerade erfolgreich getestet - auch con Stil 512...
MfG
Sebastian |
|
|
| |
|
|
|
Nico Madysa | OK, danke para el Ayuda! |
|
|
| |
|
|