Español
Foro

Mensajes del usuario $10 Runtime Interpreter

 
- Página 1 -



Jörg
Sellmeyer
Apéndice: con eingebautem WaitInput 5 funktioniert lo ahora como esperado.

Yo muss ya otra vez nerven...

Folgender Code macht en el Interpretermodus genau el, Yo erwarte y qué de el Code eigentlich ersichtlich ser debería

In compilierter Form stirbt el komplette Programa aber después de el Clic aufs Cruz uno Dialoges.
Declarar Dlg&[],x%,y%
Ventana de Estilo %11110
Mensajes del usuario $10
Cls
Título de la ventana "Hauptfenster " + Str$(%hwnd)
x% = %winleft + 100
y% = %wintop + 120

WhileLoop 0,3

    Inc x% ,30
    Inc y%, 40
    Dlg&[&Loop] = Crear("Dialog",%hwnd,"" + Str$(&Loop +1),x%%,400,300)
    Settext Dlg&[&Loop],"Test " + Str$(&Loop + 1) + " | " + Str$(Dlg&[&Loop])
    Crear("Button",Dlg&[&Loop],"Test",50,50,100,30)

Wend

Mientras que 1

    WaitInput
    Case %key = 27:Romper' "ESC"

    If %umessage = $10

        If GetFocus(%hwnd)

            Romper

        ElseIf ClassOf(GetActiveWindow()) = "#32770"

            WhileLoop 0,SizeOf(Dlg&[]) - 1

                If GetActiveWindow() = Dlg&[&Loop]

                    Imprimir GetText $(Dlg&[&Loop]) + " beendet"
                    Setfocus(%hwnd)
                    DestroyWindow(Dlg&[&Loop])
                    'después de que el WaitInput instalado habe, klappt lo
                    'Yo erinnererte mich, dass el compilierte Programa el Messageschleife sólo cada x-te Tiempo abruft.
                    WaitInput 5
                    Romper

                EndIf

            Wend

            Continue

        EndIf

    ElseIf GetText $(%getfocus) = "Test"

        Imprimir "Button",ItemId(%getfocus),"gedrückt"

    EndIf

    Case %Umessage = $10:Imprimir "Das hier debería nie a sehen ser!"

Wend

Imprimir "Hauptprogramm beendet"
WaitInput
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
02.06.2018  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »

- Página 1 -



Jörg
Sellmeyer
Mi Versión es en el Signatur. Das Problema es, dass sin WaitInput después de %umessage = $10, el Programa termina, auch si sólo en una Dialogfenster el Schließen-Cruz betätigt se.
Außerdem se la ventana principal no correcto aktiviert, si una Diálogo aktiv es, y una continuación el Cruz en el Ventana principal klickt.

Yo lo ahora así gelöst, dass Yo el Abfrage umgestellt tener y gleichzeit beim Ventana principal todavía en &mwnd chcke. Damit funktioniert lo para mich zufriedenstellend.
Declarar Dlg&[],x%,y%
Ventana de Estilo %11110 | 512
Mensajes del usuario $10
Cls
Título de la ventana "Hauptfenster " + Str$(%hwnd)
x% = %winleft + 100
y% = %wintop + 120

WhileLoop 0,3

    Inc x% ,30
    Inc y%, 40
    Dlg&[&Loop] = Crear("Dialog",%hwnd,"" + Str$(&Loop +1),x%%,400,300)
    Settext Dlg&[&Loop],"Test " + Str$(&Loop + 1) + " | " + Str$(Dlg&[&Loop])
    Crear("Button",Dlg&[&Loop],"Test",50,50,100,30)

Wend

Imprimir "%GetFocus,GetActiveWindow(),%mensaje,&lparam,&wparam"

Mientras que 1

    WaitInput
    Case %key = 27:Romper' "ESC"

    If %umessage = $10

        If ClassOf(GetActiveWindow()) = "#32770"

            WhileLoop 0,SizeOf(Dlg&[]) - 1

                If GetActiveWindow() = Dlg&[&Loop]

                    Imprimir GetText $(Dlg&[&Loop]) + " beendet"
                    DestroyWindow(Dlg&[&Loop])
                    WaitInput 5
                    Romper

                EndIf

            Wend

            Continue

        ElseIf GetFocus(%hwnd) Or (%mwnd = %hwnd)

            Romper

        EndIf

    ElseIf GetText $(%getfocus) = "Test"

        Imprimir "Button",ItemId(%getfocus),"gedrückt"

    EndIf

    Case %Umessage = $10:Imprimir "Das hier debería nie a sehen ser!"

Wend

Imprimir "Hauptprogramm beendet"
WaitInput
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
03.06.2018  
 




Michael
W.
@H.Brill

Gefunden en  [...] 


The following table describes the system classes that are available only for use by the system. They are listed here for completeness sake.

ClassDescription
ComboLBoxThe class for the list box contained en a combo box.
DDEMLEventThe class for Dynamic Data Exchange Management Library (DDEML) events.
MessageThe class for a mensaje-only window.
#32768The class for a menu.
#32769The class for the desktop window.
#32770The class for a dialog box.
#32771The class for the task switch window.
#32772The class for icon titles.

 
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
08.06.2018  
 




H.Brill
Gracias para el Info.
Pensé siempre, lo gäbe sólo Klassennamen,
el para se incluso sprechen, etwa Button, Ventana usw.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
08.06.2018  
 




Michael
W.
Findest Usted en el gleichen Artikel.

Es allerdings una Mischmasch, el como zurückgegeben se. Getreu el Motto: ¿Por qué se Yo como 2 Variables nutzen, si yo alles en uno unterbringen kann. Der Anwender se ya wissen, qué él como gerade zugewiesen ha.
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
08.06.2018  
 




H.Brill
¡Hola Jörg,
Yo habe nochmals mehrere Male einiges ausprobiert.
Dabei mußte Yo öfter el Taskmanager benutzen,
en mein Programa abzuschießen.

Como lo aussieht, scheint el a el gerade aktiven
Ventana a mentira. Folgendes scheint así a laufen, como
gewünscht :
Declarar Dlg&[],x%,y%
Mensajes del usuario $10
Cls
Título de la ventana "Hauptfenster  Beenden con ESC " + Str$(%hwnd)
x% = %winleft + 100
y% = %wintop + 120

WhileLoop 0,3

    Inc x% ,30
    Inc y%, 40
    Dlg&[&Loop] = Crear("Dialog",%hwnd,"" + Str$(&Loop +1),x%%,400,300)
    Settext Dlg&[&Loop],"Test " + Str$(&Loop + 1) + " | " + Str$(Dlg&[&Loop])
    Crear("Button",Dlg&[&Loop],"Test",50,50,100,30)

EndWhile

Mientras que 1

    WaitInput
    Case %key = 27 : Romper' "ESC"

    If %UMessage = $10

        WhileLoop 0,SizeOf(Dlg&[]) - 1

            If &UWnd = Dlg&[&Loop]

                DestroyWindow(Dlg&[&Loop])
                Imprimir "Dialoghandle : ", Dlg&[&LOOP], " es final !"

            EndIf

        EndWhile

        SetActiveWindow(%HWnd)

    EndIf

    If GetText $(%getfocus) = "Test"

        Imprimir "Button",ItemId(%getfocus),"gedrückt"

    EndIf

Wend

Imprimir "Hauptprogramm final !"
WaitInput 2000
DestroyWindow(%HWnd)
End

Würde el deinen Vorstellungen entsprechen ?

PS:
Normalerweise mache Yo para cada Diálogo una Proc
y behandle el Diálogo en uno Bucle y una
Waitinput. Halt así, como Roland auch en el Ayuda
schreibt.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
08.06.2018  
 




Jörg
Sellmeyer
En mi Programa voluntad el Dialoge a Laufzeit erstellt, sin dass Yo Einfluss en Anzahl oder Titel nehmen voluntad. Un Proc pro Diálogo kommt also no en Cuestión. Yo voluntad deinen Vorschlag veces testen, bin aber con meiner Solución auch zufrieden, como por el nochmalige WaitInput el UserMessage zurückgesetzt se y no mehr en el Hauptprogramm ankommt.
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.06.2018  
 




Michael
W.
Mensajes del usuario puede con -Nr
auch zurückgesetzt y luego erneut gesetzt voluntad
 
Alle Sprachen
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
09.06.2018  
 




Jörg
Sellmeyer
Hab Yo alles ausprobiert, sin dass lo zuverlässig funktioniert ha. Liegt eben dran, dass el Runtime el Messageschleife seltener pollt, como el Interpreter.
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
09.06.2018  
 




H.Brill
Sí, scheint wohl a XProfans Messagehandling a mentira.
En mi Code oben kommt después de Schließen aller Dialoge
el wm_close - Nachricht auch no mehr para Ventana principal.

Como müßte uno probieren, si uno con Abschalten el internen
Messageverarbeitung con Conjunto("FastMode", 1) y GetMessage
más kommt. Auch Dialoge son no ideal, como ellos normalerweise
en $10 no automáticamente reagieren.

Como bietet XProfan sí todavía mehr Möglichkeiten.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
09.06.2018  
 




H.Brill
So scheint lo sauber (auch como .exe) a laufen :
Declarar Dlg&[],x%,y%
Mensajes del usuario $10
Cls
Título de la ventana "Hauptfenster  Beenden con ESC " + Str$(%hwnd)
x% = %winleft + 100
y% = %wintop + 120

WhileLoop 0,3

    Inc x% ,30
    Inc y%, 40
    Dlg&[&Loop] = Crear("Window",%hwnd,"" + Str$(&Loop +1),x%%,400,300)
    Settext Dlg&[&Loop],"Test " + Str$(&Loop + 1) + " | " + Str$(Dlg&[&Loop])
    Crear("Button",Dlg&[&Loop],"Test",50,50,100,30)

EndWhile

Mientras que 1

    WaitInput
    Case %key = 27 : Romper' "ESC"

    If %UMessage = $10

        WhileLoop 0,SizeOf(Dlg&[]) - 1

            If &UWnd = Dlg&[&Loop]

                DestroyWindow(Dlg&[&Loop])
                Imprimir "Dialoghandle : ", Dlg&[&LOOP], " es final !"
                Romper

            EndIf

        EndWhile

        Case &UWnd = %HWnd : Romper
        SetActiveWindow(%HWnd)

    EndIf

    If GetText $(%getfocus) = "Test"

        Imprimir "Button",ItemId(%getfocus),"gedrückt"

    EndIf

Wend

Imprimir "Hauptprogramm final !"
WaitInput 2000
DestroyWindow(%HWnd)
End
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
09.06.2018  
 



 
- Página 2 -



Jörg
Sellmeyer
Yo habs no getestet, porque Yo grad no a media PC komme. Aber hast Si es usted el auch ya con Ceate("Dialog",...) getestet?
 
XProfan X4
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
10.06.2018  
 




H.Brill
Geht en me auch como Diálogo.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
11.06.2018  
 




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

9.602 Views

Untitledvor 0 min.
Stringray05.01.2022
Michael Hettner02.09.2021
p.specht15.12.2020
iF31.10.2020
Más...

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