Source / code snippets | | | | - Page 1 - |
| RudiB. | Hello together,
have time again a question.
can I during the SLEEP's a discontinue of Sleep force ? z.B. with wm_Timer function ?? |
| | | Xprofan X4 Rudolf Beske / München
Hardware: NB Intel I9 - 16GByte RAM | 04/28/20 ▲ |
| |
| | « this Posting watts as Solution marked. » | | Georg Teles | have something rumgespielt, here quite simply
Declare e%, oWndProc&
Declare new%, terminate%
Declare trigger&, wartezeit&
Declare question%, response%
Declare question$, response$
Declare time%
Def GetWindowLong(2)!"USER32","GetWindowLongA"
Def SetWindowLong(3)!"USER32","SetWindowLongA"
Def KillTimer32(2)!"USER32","KillTimer"
Def SetTimer32(4)!"USER32","SetTimer"
CLS
frage$ = "Frage: how much is 44 * 5 ?"
antwort$ = "Lösung: 220"
frage% = Create("Text",%hWnd,question$,5,5,255,20)
antwort% = Create("Text",%hWnd,"Lösung:",5,30,255,20)
zeit% = Create("Text",%hWnd,"",100,61,65,20)
neu% = Create("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Create("Button",%hWnd,"beenden",170,60,90,20)
Proc tmpr
Inc wartezeit&
If trigger& = 1
SetText response%,response$+" (through ESC triggered)"
wartezeit& = 0
SetText time%,""
Else
SetText time%,Str $(10-(wartezeit&)\3)+" Sek."
EndIf
If wartezeit& >= 3*10
SetText response%,response$+" (Wartezeit past)"
wartezeit& = 0
SetText time%,""
EndIf
ENDPROC
SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Clear e%, trigger&, wartezeit&
WhileNot e%
Waitinput
' Trigger trigger
If (%Key = 27) or (%Key = 2)
locate 1,1
trigger& = 1
EndIf
' next question + Trigger on 0
If Clicked(new%)
question$ = "Frage: Hauptstadt of Germany ?"
response$ = "Lösung: Berlin"
SetText question%,question$
SetText response%,"Lösung:"
Clear trigger&, wartezeit&
SetFocus(%hWnd)
EndIf
' Program directly terminate
If Clicked(terminate%)
Inc e%
EndIf
EndWhile
KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)
here with Arrays as question/Solution
Declare e%, oWndProc&
Declare new%, terminate%
Declare trigger&, wartezeit&
Declare question%, response%
Declare ask$, Answer$
Declare question$[], response$[]
Declare zufall&, time%
Def GetWindowLong(2)!"USER32","GetWindowLongA"
Def SetWindowLong(3)!"USER32","SetWindowLongA"
Def KillTimer32(2)!"USER32","KillTimer"
Def SetTimer32(4)!"USER32","SetTimer"
Randomize
CLS
fragen$ = "Wieviel is 44 * 5 ?;Hauptstadt of Germany ?;2^4 - 2 ?;Wurzel from 27 ?"
antworten$ = "220;Berlin;14;3"
frage$[] = explode(ask$,";")
antwort$[] = explode(Answer$,";")
zufall& = Rnd(4)
frage% = Create("Text",%hWnd,question$[zufall&],5,5,255,20)
antwort% = Create("Text",%hWnd,"",5,30,700,20)
zeit% = Create("Text",%hWnd,"",100,61,65,20)
neu% = Create("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Create("Button",%hWnd,"beenden",170,60,90,20)
Proc tmpr
Inc wartezeit&
If trigger& = 1
SetText response%,response$[zufall&]+" (through ESC triggered) or Wartezeit past s. \qAUSLÖSER\q"
wartezeit& = 0
SetText time%,""
Else
SetText time%,Str $(10-(wartezeit&)\3)+" Sek."' of 10 sec Time take away
EndIf
If wartezeit& >= 3*10' 10 sec
' so The Time not any more backward runs, can this step boisterously and be
' only trigger = 1 staid, there Solution too supra displayed becomes, see supra
trigger& = 1'AUSLÖSER
'SetText response%,response$[zufall&]+" (Wartezeit past)"
'wartezeit& = 0
'SetText time%,""
EndIf
ENDPROC
SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Clear e%, trigger&, wartezeit&
WhileNot e%
Waitinput
' Trigger trigger
If (%Key = 27) or (%Key = 2)
locate 1,1
trigger& = 1
EndIf
' next question + Trigger on 0
If Clicked(new%)
zufall& = Rnd(4)
SetText question%, question$[zufall&]
SetText response%,""
Clear trigger&, wartezeit&
SetFocus(%hWnd)
EndIf
' Program directly terminate
If Clicked(terminate%)
Inc e%
EndIf
EndWhile
KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)
Perhaps can You something so begin
Regards Georg |
| | | | | |
| | RudiB. | has itself already Done...
have a Solution found circa faster / quick from the Sleep rauszukommen.
|
| | | | |
| | Georg Teles | good day,
aah has Done weiß' Yes not, what You to have, but I having a suggestion, where You rumexperementieren can
Declare 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
Locate 1,1
print time$(0);":";time$(1);" - ESC pressing, circa Timer To beenden"
print "verschiebe Window, Timer updated nevertheless this Text"
ENDPROC
CLS
var Button% = Create("Button",%hWNd,"teste",20,50,100,20)
t& = SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Clear e%
WhileNot e%
Waitinput
If (%Key = 27) or (%Key = 2)
Locate 1,1
'Case t &:KillTimer32(%hWnd,1)
If t& = 1
KillTimer32(%hWnd,1)
t& = 0
EndIf
print space$(23)+"ABBRUCH"+space$(23)
'Inc e% '= ENDE
EndIf
'-------------------------------------------------
If t& = 0
' institute of technology what, if Timer lane is
EndIf
' eleganter here, if Button UND Timer = 1
If (Clicked(Button%)) AND (t& = 1)
locate 5,20
print "nix geschieht"
SetFocus(%hWnd)
EndIf
' eleganter here, if Button UND Timer = 0
If (Clicked(Button%)) AND (t& = 0)
locate 5,20
print "was now? (X supra right in order to terminate)"
EndIf
EndWhile
SetWindowLong(%hWnd,-4,oWndProc&)
Regards |
| | | | |
| | RudiB. | now Yes, I write straight on eimem Vokabe-coach. an function is here hold How with of/ one "Dia-Show" ...Vokabel becomes displayed and joining after a einstellbaren interval (zw. 1 and 10 sek.) becomes The response eingeblendet. so has one even a gewisse Time the response To consider. white one The response but immediate, then to the User but not absolutely The filled Pausenzeit "absitzen" must. means out from the interval....with ESC, thereafter hold moreover ... therefore have I hold The Pausenzeit verkürzt and a Whileloop-Loop laid. before 10 sek. interval on the Piece and so then hold zoned on 20*0,5sek. with the possibility with ESC auszusteigen.
but your Solution is really super and will be these Solution time extensively testing and safety too with install. integral eleganter....
thanks you Georg
Greeting from munich Rudi |
| | | | |
| | Georg Teles | have something rumgespielt, here quite simply
Declare e%, oWndProc&
Declare new%, terminate%
Declare trigger&, wartezeit&
Declare question%, response%
Declare question$, response$
Declare time%
Def GetWindowLong(2)!"USER32","GetWindowLongA"
Def SetWindowLong(3)!"USER32","SetWindowLongA"
Def KillTimer32(2)!"USER32","KillTimer"
Def SetTimer32(4)!"USER32","SetTimer"
CLS
frage$ = "Frage: how much is 44 * 5 ?"
antwort$ = "Lösung: 220"
frage% = Create("Text",%hWnd,question$,5,5,255,20)
antwort% = Create("Text",%hWnd,"Lösung:",5,30,255,20)
zeit% = Create("Text",%hWnd,"",100,61,65,20)
neu% = Create("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Create("Button",%hWnd,"beenden",170,60,90,20)
Proc tmpr
Inc wartezeit&
If trigger& = 1
SetText response%,response$+" (through ESC triggered)"
wartezeit& = 0
SetText time%,""
Else
SetText time%,Str $(10-(wartezeit&)\3)+" Sek."
EndIf
If wartezeit& >= 3*10
SetText response%,response$+" (Wartezeit past)"
wartezeit& = 0
SetText time%,""
EndIf
ENDPROC
SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Clear e%, trigger&, wartezeit&
WhileNot e%
Waitinput
' Trigger trigger
If (%Key = 27) or (%Key = 2)
locate 1,1
trigger& = 1
EndIf
' next question + Trigger on 0
If Clicked(new%)
question$ = "Frage: Hauptstadt of Germany ?"
response$ = "Lösung: Berlin"
SetText question%,question$
SetText response%,"Lösung:"
Clear trigger&, wartezeit&
SetFocus(%hWnd)
EndIf
' Program directly terminate
If Clicked(terminate%)
Inc e%
EndIf
EndWhile
KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)
here with Arrays as question/Solution
Declare e%, oWndProc&
Declare new%, terminate%
Declare trigger&, wartezeit&
Declare question%, response%
Declare ask$, Answer$
Declare question$[], response$[]
Declare zufall&, time%
Def GetWindowLong(2)!"USER32","GetWindowLongA"
Def SetWindowLong(3)!"USER32","SetWindowLongA"
Def KillTimer32(2)!"USER32","KillTimer"
Def SetTimer32(4)!"USER32","SetTimer"
Randomize
CLS
fragen$ = "Wieviel is 44 * 5 ?;Hauptstadt of Germany ?;2^4 - 2 ?;Wurzel from 27 ?"
antworten$ = "220;Berlin;14;3"
frage$[] = explode(ask$,";")
antwort$[] = explode(Answer$,";")
zufall& = Rnd(4)
frage% = Create("Text",%hWnd,question$[zufall&],5,5,255,20)
antwort% = Create("Text",%hWnd,"",5,30,700,20)
zeit% = Create("Text",%hWnd,"",100,61,65,20)
neu% = Create("Button",%hWnd,"näch. Frage",5,60,90,20)
beenden% = Create("Button",%hWnd,"beenden",170,60,90,20)
Proc tmpr
Inc wartezeit&
If trigger& = 1
SetText response%,response$[zufall&]+" (through ESC triggered) or Wartezeit past s. \qAUSLÖSER\q"
wartezeit& = 0
SetText time%,""
Else
SetText time%,Str $(10-(wartezeit&)\3)+" Sek."' of 10 sec Time take away
EndIf
If wartezeit& >= 3*10' 10 sec
' so The Time not any more backward runs, can this step boisterously and be
' only trigger = 1 staid, there Solution too supra displayed becomes, see supra
trigger& = 1'AUSLÖSER
'SetText response%,response$[zufall&]+" (Wartezeit past)"
'wartezeit& = 0
'SetText time%,""
EndIf
ENDPROC
SetTimer32(%hWnd,1,333,ProcAddr("tmpr",0))
oWndProc& = GetWindowLong(%hWnd,-4)
Clear e%, trigger&, wartezeit&
WhileNot e%
Waitinput
' Trigger trigger
If (%Key = 27) or (%Key = 2)
locate 1,1
trigger& = 1
EndIf
' next question + Trigger on 0
If Clicked(new%)
zufall& = Rnd(4)
SetText question%, question$[zufall&]
SetText response%,""
Clear trigger&, wartezeit&
SetFocus(%hWnd)
EndIf
' Program directly terminate
If Clicked(terminate%)
Inc e%
EndIf
EndWhile
KillTimer32(%hWnd,1)
SetWindowLong(%hWnd,-4,oWndProc&)
Perhaps can You something so begin
Regards Georg |
| | | | |
| | RudiB. | there can I utterly what with begin, has me still same to a new idea inspired. must time look How I the now in my Program einbaue without it me To zerschießen..... the bekomm I already there...
thanks Georg |
| | | | |
| | Georg Teles | perfect
Regards |
| | | | |
| | | programs, The asynchrone Prozedurenaufrufe on a Proc set, The only for synchrone Enumeration suitable is, can anytime and apparently random jegliche functions the Betriebssystemes Call.
think one, the Call on DeleteFileA is except the address no another, as the on SetPixel - there wealthy to that catastrophe one zeitversetztes xor eax,eax and a couple suitable values on the Stack - plenty Happiness.
Sleep 10000 can You sure with ExitProcess/ TerminateThread etc. "killen"/ should even delegates his/ go/ or. shining not meaningfully inserted To go.
"Nicht blockierendes Warten" by Waitinput, sinngemäß:
|
| | | | |
|
Zum QuelltextThemeninformationenthis Topic has 3 subscriber: |