Français
Source/ Codesnippets

Sleep 10000 avec Abbruch dedans cette Zeit

 
- page 1 -



RudiB.
allô zusammen,

habe la fois wieder une Frage.
ifnot ende%

    Sleep 1000 * récréation%

Endif


peux je au cours de des SLEEP's une Abbruch de Sleep erzwingen ?
z.B. avec wm_Timer Funktion ??
 
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
28.04.2020  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Georg
Teles
Habe quelque chose rumgespielt, ici assez simpel
Déclarer e%, oWndProc&
Déclarer récente%, finissons%
Déclarer trigger&, wartezeit&
Déclarer frage%, antwort%
Déclarer frage$, antwort$
Déclarer zeit%
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def KillTimer32(2)!"User32","KillTimer"
Def SetTimer32(4)!"User32","SetTimer"
CLS
frage$ = "Frage: combien ist 44 * 5 ?"
antwort$ = "Lösung: 220"
frage% = Créer("Text",%hWnd,frage$,5,5,255,20)
antwort% = Créer("Text",%hWnd,"Lösung:",5,30,255,20)
zeit% = Créer("Text",%hWnd,»,100,61,65,20)
neu% = Créer("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Créer("Button",%hWnd,"beenden",170,60,90,20)

Proc tmpr

    Inc wartezeit&

    Si trigger& = 1

        SetText antwort%,antwort$+" (par ESC ausgelöst)"
        wartezeit& = 0
        SetText zeit%,»

    D'autre

        SetText zeit%,Str$(10-(wartezeit&)\3)+" Sek."

    EndIf

    Si wartezeit& >= 3*10

        SetText antwort%,antwort$+" (Wartezeit vorbei)"
        wartezeit& = 0
        SetText zeit%,»

    EndIf

ENDPROC

SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Claire e%, trigger&, wartezeit&

WhileNot e%

    Waitinput
    ' Trigger auslösen

    Si (%Key = 27) or (%Key = 2)

        locate 1,1
        trigger& = 1

    EndIf

    ' prochain Frage + Trigger sur 0

    Si Clicked(récente%)

        frage$ = "Frage: la capitale de l'allemagne ?"
        antwort$ = "Lösung: Berlin"
        SetText frage%,frage$
        SetText antwort%,"Lösung:"
        Claire trigger&, wartezeit&
        SetFocus(%hWnd)

    EndIf

    ' Programme direct finissons

    Si Clicked(finissons%)

        Inc e%

    EndIf

Endwhile

KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)

ici avec Arrays comme Frage/Solution
Déclarer e%, oWndProc&
Déclarer récente%, finissons%
Déclarer trigger&, wartezeit&
Déclarer frage%, antwort%
Déclarer fragen$, répondre$
Déclarer frage$[], antwort$[]
Déclarer zufall&, zeit%
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def KillTimer32(2)!"User32","KillTimer"
Def SetTimer32(4)!"User32","SetTimer"
Randomiser
CLS
fragen$ = "Wieviel ist 44 * 5 ?;Hauptstadt de l'allemagne ?;2^4 - 2 ?;Wurzel aus 27 ?"
antworten$ = "220;Berlin;14;3"
frage$[] = explode(fragen$,";")
antwort$[] = explode(répondre$,";")
zufall& = Tour(4)
frage% = Créer("Text",%hWnd,frage$[zufall&],5,5,255,20)
antwort% = Créer("Text",%hWnd,»,5,30,700,20)
zeit% = Créer("Text",%hWnd,»,100,61,65,20)
neu% = Créer("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Créer("Button",%hWnd,"beenden",170,60,90,20)

Proc tmpr

    Inc wartezeit&

    Si trigger& = 1

        SetText antwort%,antwort$[zufall&]+" (par ESC ausgelöst) bzw Wartezeit vorbei s. \qAUSLÖSER\q"
        wartezeit& = 0
        SetText zeit%,»

    D'autre

        SetText zeit%,Str$(10-(wartezeit&)\3)+" Sek."' de 10 Sekunden Zeit abziehen

    EndIf

    Si wartezeit& >= 3*10' 10 Sekunden

        ' avec cela qui Zeit pas plus arriéré fonctionne, peux cette Schritt ausgelassen volonté et
        ' seulement trigger = 1 gesetzt, là Solution aussi dessus angezeigt wird, siehe dessus
        trigger& = 1'AUSLÖSER
        'SetText antwort%,antwort$[zufall&]+" (Wartezeit vorbei)"
        'wartezeit& = 0
        'SetText zeit%,»

    EndIf

ENDPROC

SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Claire e%, trigger&, wartezeit&

WhileNot e%

    Waitinput
    ' Trigger auslösen

    Si (%Key = 27) or (%Key = 2)

        locate 1,1
        trigger& = 1

    EndIf

    ' prochain Frage + Trigger sur 0

    Si Clicked(récente%)

        zufall& = Tour(4)
        SetText frage%, frage$[zufall&]
        SetText antwort%,»
        Claire trigger&, wartezeit&
        SetFocus(%hWnd)

    EndIf

    ' Programme direct finissons

    Si Clicked(finissons%)

        Inc e%

    EndIf

Endwhile

KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)

peut-être peux Du quelque chose avec cela anfangen

Grüße Georg
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

02.05.2020  
 




RudiB.
Hat sich déjà erledigt...

Habe une Solution trouvé um plus rapide / vite aus dem Sleep rauszukommen.
Whileloop 20

    Si @IsKey(27)

        ende%=1
        pause

    Endif

    Sleep 50 * récréation%

Endwhile


 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
28.04.2020  
 




Georg
Teles
Guten journée,

aah hat sich erledigt weiß' oui pas, quoi du avant la hâte, mais je hatte une Vorschlag, wohin du rumexperementieren peux
Déclarer e%, t&, oWndProc&
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def KillTimer32(2)!"User32","KillTimer"
Def SetTimer32(4)!"User32","SetTimer"

Proc tmpr

    Localiser 1,1
    imprimer time$(0);»;time$(1);" - ESC drücken, um Minuteur trop beenden"
    imprimer "verschiebe la fenêtre, Minuteur aktualisiert toutefois cette Text"

ENDPROC

CLS
var Button% = Créer("Button",%hWNd,"teste",20,50,100,20)
t& = SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Claire e%

WhileNot e%

    Waitinput

    Si (%Key = 27) or (%Key = 2)

        Localiser 1,1
        'Cas t&:KillTimer32(%hWnd,1)

        Si t& = 1

            KillTimer32(%hWnd,1)
            t& = 0

        EndIf

        imprimer space$(23)+"ABBRUCH"+space$(23)
        'Inc e% '= ENDE

    EndIf

    '-------------------------------------------------

    Si t& = 0

        ' tu quoi, si Minuteur weg ist

    EndIf

    ' eleganter ici, si Button UND Minuteur = 1

    Si (Clicked(Button%)) AND (t& = 1)

        locate 5,20
        imprimer "nix geschieht"
        SetFocus(%hWnd)

    EndIf

    ' eleganter ici, si Button UND Minuteur = 0

    Si (Clicked(Button%)) AND (t& = 0)

        locate 5,20
        imprimer "was maintenant? (X dessus à droite afin de finissons)"

    EndIf

Endwhile

SetWindowLong(%hWnd,-4,oWndProc&)

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

01.05.2020  
 




RudiB.
eh bien, j'écris justement à eimem Vokabe-Trainer. une Funktion ist ici arrêt comment chez einer "Dia-Show" ...Vokabel wird angezeigt et anschliessend pour einer einstellbaren récréation (zw. 1 et 10 sek.) wird qui Antwort eingeblendet. So hat on plan une gewisse Zeit sich qui Antwort trop überlegen.
sais on qui Antwort mais tout de suite, ensuite soll qui User mais pas absolument qui volle Pausenzeit "absitzen" doit. alors raus aus qui récréation....avec ESC, après arrêt plus ...
Daher habe je arrêt qui Pausenzeit verkürzt et dans un Whileloop-Boucle gelegt.
auparavant 10 sek. récréation am Stück et so ensuite arrêt aufgeteilt sur 20*0,5sek. avec qui möglichkeit avec ESC auszusteigen.

mais Votre Solution ist wirklich Super et werde cet Solution la fois ausgiebig testen et Sicherheit aussi avec einbauen. Wesentlich eleganter....

merci Dir Georg

Salut aus München Rudi
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
01.05.2020  
 




Georg
Teles
Habe quelque chose rumgespielt, ici assez simpel
Déclarer e%, oWndProc&
Déclarer récente%, finissons%
Déclarer trigger&, wartezeit&
Déclarer frage%, antwort%
Déclarer frage$, antwort$
Déclarer zeit%
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def KillTimer32(2)!"User32","KillTimer"
Def SetTimer32(4)!"User32","SetTimer"
CLS
frage$ = "Frage: combien ist 44 * 5 ?"
antwort$ = "Lösung: 220"
frage% = Créer("Text",%hWnd,frage$,5,5,255,20)
antwort% = Créer("Text",%hWnd,"Lösung:",5,30,255,20)
zeit% = Créer("Text",%hWnd,»,100,61,65,20)
neu% = Créer("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Créer("Button",%hWnd,"beenden",170,60,90,20)

Proc tmpr

    Inc wartezeit&

    Si trigger& = 1

        SetText antwort%,antwort$+" (par ESC ausgelöst)"
        wartezeit& = 0
        SetText zeit%,»

    D'autre

        SetText zeit%,Str$(10-(wartezeit&)\3)+" Sek."

    EndIf

    Si wartezeit& >= 3*10

        SetText antwort%,antwort$+" (Wartezeit vorbei)"
        wartezeit& = 0
        SetText zeit%,»

    EndIf

ENDPROC

SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Claire e%, trigger&, wartezeit&

WhileNot e%

    Waitinput
    ' Trigger auslösen

    Si (%Key = 27) or (%Key = 2)

        locate 1,1
        trigger& = 1

    EndIf

    ' prochain Frage + Trigger sur 0

    Si Clicked(récente%)

        frage$ = "Frage: la capitale de l'allemagne ?"
        antwort$ = "Lösung: Berlin"
        SetText frage%,frage$
        SetText antwort%,"Lösung:"
        Claire trigger&, wartezeit&
        SetFocus(%hWnd)

    EndIf

    ' Programme direct finissons

    Si Clicked(finissons%)

        Inc e%

    EndIf

Endwhile

KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)

ici avec Arrays comme Frage/Solution
Déclarer e%, oWndProc&
Déclarer récente%, finissons%
Déclarer trigger&, wartezeit&
Déclarer frage%, antwort%
Déclarer fragen$, répondre$
Déclarer frage$[], antwort$[]
Déclarer zufall&, zeit%
Def GetWindowLong(2)!"User32","GetWindowLongA"
Def SetWindowLong(3)!"User32","SetWindowLongA"
Def KillTimer32(2)!"User32","KillTimer"
Def SetTimer32(4)!"User32","SetTimer"
Randomiser
CLS
fragen$ = "Wieviel ist 44 * 5 ?;Hauptstadt de l'allemagne ?;2^4 - 2 ?;Wurzel aus 27 ?"
antworten$ = "220;Berlin;14;3"
frage$[] = explode(fragen$,";")
antwort$[] = explode(répondre$,";")
zufall& = Tour(4)
frage% = Créer("Text",%hWnd,frage$[zufall&],5,5,255,20)
antwort% = Créer("Text",%hWnd,»,5,30,700,20)
zeit% = Créer("Text",%hWnd,»,100,61,65,20)
neu% = Créer("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Créer("Button",%hWnd,"beenden",170,60,90,20)

Proc tmpr

    Inc wartezeit&

    Si trigger& = 1

        SetText antwort%,antwort$[zufall&]+" (par ESC ausgelöst) bzw Wartezeit vorbei s. \qAUSLÖSER\q"
        wartezeit& = 0
        SetText zeit%,»

    D'autre

        SetText zeit%,Str$(10-(wartezeit&)\3)+" Sek."' de 10 Sekunden Zeit abziehen

    EndIf

    Si wartezeit& >= 3*10' 10 Sekunden

        ' avec cela qui Zeit pas plus arriéré fonctionne, peux cette Schritt ausgelassen volonté et
        ' seulement trigger = 1 gesetzt, là Solution aussi dessus angezeigt wird, siehe dessus
        trigger& = 1'AUSLÖSER
        'SetText antwort%,antwort$[zufall&]+" (Wartezeit vorbei)"
        'wartezeit& = 0
        'SetText zeit%,»

    EndIf

ENDPROC

SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Claire e%, trigger&, wartezeit&

WhileNot e%

    Waitinput
    ' Trigger auslösen

    Si (%Key = 27) or (%Key = 2)

        locate 1,1
        trigger& = 1

    EndIf

    ' prochain Frage + Trigger sur 0

    Si Clicked(récente%)

        zufall& = Tour(4)
        SetText frage%, frage$[zufall&]
        SetText antwort%,»
        Claire trigger&, wartezeit&
        SetFocus(%hWnd)

    EndIf

    ' Programme direct finissons

    Si Clicked(finissons%)

        Inc e%

    EndIf

Endwhile

KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)

peut-être peux Du quelque chose avec cela anfangen

Grüße Georg
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

02.05.2020  
 




RudiB.
là peux je absolu quoi avec anfangen, hat mich doch juste trop einer neuen concept inspiriert.
Muss la fois regarder comment je cela maintenant dans mon Programme einbaue sans es mir trop zerschießen.....
cela bekomm je déjà hin...

merci Georg
 
XProfan X4
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
03.05.2020  
 




Georg
Teles
parfait

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

03.05.2020  
 



Programme, qui asynchrone Prozedurenaufrufe sur une Proc ansetzen, qui seulement pour synchrone Enumeration approprié ist, peut jederzeit et scheinbar zufällig jegliche Funktionen des Betriebssystemes appel.

Denke on, qui Call sur DeleteFileA ist ausgenommen qui Adresse ne...aucune anderer, comme qui sur SetPixel - là reichen zum Unglück un zeitversetztes xor eax,eax et un paire geeignete Werte sur dem Stack - viel Glück.

Sleep 10000 peux Du sûrement avec ExitProcess/ TerminateThread etc. "killen"/ devrait plan delegiert son/ volonté/ bzw. scheint ici pas sinnvoll eingesetzt trop volonté.

"Nicht blockierendes Warten" per Waitinput, sinngemäß:
 
24.09.2020  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

5.581 Views

Untitledvor 0 min.
ScanMaster20.06.2024
Walter31.12.2022
RudiB.08.03.2022
Sven Bader22.09.2021
plus...

Themeninformationen

cet Thema hat 3 participant:

RudiB. (4x)
Georg Teles (3x)
iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie