Español
Foro

%Key no es zurück gesetzt?

 

Nico
Madysa
Mir es ya en XProfan9 una Fehler aufgefallen, el Yo hier nun veces zeigen voluntad.
Ausgangspunkt es dieser Minimalcode.
KompilierenMarcaSeparación
declare 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?
 
Nico Madysa
26.06.2006  
 



Probier veces el dulcoiF .
KompilierenMarcaSeparación
 
26.06.2006  
 




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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
26.06.2006  
 




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
Whilenot %Key = 2

    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

    Waitinput

Wend

End

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?
 
Nico Madysa
27.06.2006  
 




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ón
Declare 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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
27.06.2006  
 




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.
 
Nico Madysa
28.06.2006  
 




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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
28.06.2006  
 




Nico
Madysa
OK, danke para el Ayuda!
 
Nico Madysa
29.06.2006  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

890 Views

Untitledvor 0 min.
Georg16.01.2021
H.Brill09.02.2019
ByteAttack01.11.2015
holmol9313.06.2013

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie