| |
|
|
Web Scanner |
oui, qui Überschrift sagt es déjà. Es soll folgendermaßen marcher. je drücke einn Button "Start" qui l'heure commence à trop courir ( dans sec. Schritten) ensuite den Button "Stop" drücken, qui montre bleibt stehen. après ggf. wieder Start, qui Zeit fonctionne plus, ou bien peux avec einem anderen Button "RESET" sur 0 zurückgesetzt volonté.
Sodele, ab maintenant wirds compliqué, dans einem la fenêtre devoir trois verschiedene Zeiten parallèle courir, alors: trois Zeitanzeigen qui völlig getrennt voneinander courir devoir jeweil avec Start/Stop/Reset usw.
Hat quelqu'un avec permanenten Zeitanzeigen dans X11 déjà quoi programmiert? Einen älteren Beitrag aus 2004 hab je trouvé, hilft mir mais pas wirklich plus qui Aider bringt mich seulement sur qui Systemzeit des PCs. ou bien hab je quoi übersehen
Viele Grüße
Web |
|
|
| |
|
|
|
| Fix hingepinselt KompilierenMarqueSéparation {$cleq}
decimals 0
cls
longs timer,hDisp,hStart,hPause,hReset
whileLoop 20
timer[loop]=0
hDisp[loop]=createText(hWnd,"Timer:"+str$(loop),20,loop*20,400,18)
hStart[loop]=createButton(hWnd,"Start",450,loop*20,50,18)
hPause[loop]=createButton(hWnd,"Pause",500,loop*20,50,18)
hReset[loop]=createButton(hWnd,"Reset",550,loop*20,50,18)
wend
subClass hWnd,true
~setTimer(hWnd,222,100,0)
while 1
waitinput
whileLoop 20
case clicked(hStart[loop]) : timer[loop]=getTickCount
case clicked(hPause[loop]) : timer[loop]=-timer[loop]
if clicked(hReset[loop])
timer[loop]=0
setText hDisp[loop],"0"
endif
wend
wend
end
subClassProc
if sMessage==wm_timer
if sWParam==222
whileLoop 20
if timer[loop]>0
setText hDisp[loop],str$(getTickCount-timer[loop])+"ms"
endif
wend
endif
endif
./../funcion-referencias/XProfan/endproc/'>endproc
KompilierenMarqueSéparation $H windows.ph
DECIMALS 0
CLS
DECLARE TIMER&[]
DECLARE HDISP&[]
DECLARE HSTART&[]
DECLARE HPAUSE&[]
DECLARE HRESET&[]
WHILELOOP 20
TIMER&[&LOOP]=0
HDISP&[&LOOP]=(CONTROL("STATIC","Timer:"+STR$(&LOOP),$50000000,(20),(&LOOP*20),(400),(18),(%HWND),0,%HINSTANCE))
HSTART&[&LOOP]=(CREATE("BUTTON",(%HWND),"Start",(450),(&LOOP*20),(50),(18)))
HPAUSE&[&LOOP]=(CREATE("BUTTON",(%HWND),"Pause",(500),(&LOOP*20),(50),(18)))
HRESET&[&LOOP]=(CREATE("BUTTON",(%HWND),"Reset",(550),(&LOOP*20),(50),(18)))
ENDWHILE
SUBCLASS %HWND,1
~setTimer(%HWND,222,100,0)
WHILE 1
WAITINPUT
WHILELOOP 20
IF CLICKED(HSTART&[&LOOP])
TIMER&[&LOOP]=&GETTICKCOUNT
ENDIF
IF CLICKED(HPAUSE&[&LOOP])
TIMER&[&LOOP]=-TIMER&[&LOOP]
ENDIF
IF CLICKED(HRESET&[&LOOP])
TIMER&[&LOOP]=0
SETTEXT HDISP&[&LOOP],"0"
ENDIF
ENDWHILE
ENDWHILE
end
subclassproc
IF %SMESSAGE=$0113
IF &SWPARAM=222
WHILELOOP 20
IF TIMER&[&LOOP]>0
SETTEXT HDISP&[&LOOP],STR$(&GETTICKCOUNT-TIMER&[&LOOP])+"ms"
ENDIF
ENDWHILE
ENDIF
ENDIF
endproc
sans Feinschliff. aussi lustig [...] aus [...] . |
|
|
| |
|
|
|
Web Scanner | absolu cool iF, Dankeschön - variante 2 allez sur Anhieb. cela werd je la fois reinbasteln. là hätt je Tagelang tour rumprobiert
avec dem oberen Programmstückchen viens je malheureusement pas bien sûr
Grüße
Web |
|
|
| |
|
|
|
| de rien!
Oberes allez avec XPSE, tambour quelque chose einfachere Syntax. |
|
|
| |
|
|
|
Web Scanner |
chez récréation devrait seulement encore qui Zeit "anhalten", car qui fonctionne interne plus et si on cela zweite la fois récréation drückt, ist qui Zeit weitergelaufen et fonctionne de dem Zeitpunkz aus plus
mais mir hilft cela wirklich déjà viel plus.
Grüße
Web |
|
|
| |
|
|
|
| je weiss, mais je denke la fois c'est fix hinzubekommen - chez Resume z.B. simple den trop subtrahierenden Wert per GetText ermitteln. ^ ^ |
|
|
| |
|
|
|
Web Scanner | Okay. Mach je ensuite so |
|
|
| |
|
|
|
Web Scanner | Salut,
anbei mon Solution avec paire geklauten Programmzeilen de iF. sûrement pas so joli programmiert, mais es fonctionne. avec cela qui Zähler zum Testen plus rapide fonctionne, habe je Settimer sur 100 gesetzt (1000 wäre richtig).
Grüße
Web KompilierenMarqueSéparation**** Programm zur parallelen Zeitanzeige in Profan ****
declare time1&, minute1%, zähler1%, Stunde1%
declare time2&, minute2%, zähler2%, Stunde2%
declare time3&, minute3%, zähler3%, Stunde3%, Loopzahl%
declare Starttimer1%, Starttimer2%, Starttimer3%, a%
DECLARE TIMER&[]
DECLARE HDISP&[]
DECLARE HSTART&[]
DECLARE HPAUSE&[]
DECLARE HRESET&[]
proc Timer1
inc time1&
Locate 2 , 14
print str$(time1&);" s "
zähler1% = zähler1%+1
If zähler1% = 60
Minute1% = minute1%+1
locate 2 , 7
print minute1%;" min "
zähler1% = 0
time1& = 0
endif
If Minute1% = 60
Stunde1% = Stunde1% + 1
Locate 2 , 2
Print Stunde1%;" h "
Minute1% = 0
Endif
endproc
proc Timer2
inc time2&
Locate 4 , 14
print str$(time2&);" s "
zähler2% = zähler2%+1
If zähler2% = 60
Minute2% = minute2%+1
locate 4 , 7
print minute2%;" min "
zähler2% = 0
time2& = 0
endif
If Minute2% = 60
Stunde2% = Stunde2% + 1
Locate 4 , 2
Print Stunde2%;" h "
Minute2% = 0
Endif
endproc
proc Timer3
inc time3&
Locate 6 , 14
print str$(time3&);" s "
zähler3% = zähler3%+1
If zähler3% = 60
Minute3% = minute3%+1
locate 6 , 7
print minute3%;" min "
zähler3% = 0
time3& = 0
endif
If Minute3% = 60
Stunde3% = Stunde3% + 1
Locate 6 , 2
Print Stunde3%;" h "
Minute3% = 0
Endif
endproc
WindowStyle 2+8+16+512
Window 0 , 0 - 640 , 480
time1& = 0
time2& = 0
SetTimer 100
minute1% = 0
zähler1% = 0
minute2% = 0
zähler2% = 0
Locate 2,2
print "0 h "
Locate 2,7
print "0 min "
Locate 2,14
print "00 s "
Locate 4,2
print "0 h "
Locate 4,7
print "0 min "
Locate 4,14
print "00 s "
Locate 6,2
print "0 h "
Locate 6,7
print "0 min "
Locate 6,14
print "00 s "
WHILELOOP 3
HSTART&[&LOOP]=(CREATE("BUTTON",(%HWND),"Start",(450),(&LOOP*20),(50),(18)))
HPAUSE&[&LOOP]=(CREATE("BUTTON",(%HWND),"Pause",(500),(&LOOP*20),(50),(18)))
HRESET&[&LOOP]=(CREATE("BUTTON",(%HWND),"Reset",(550),(&LOOP*20),(50),(18)))
ENDWHILE
--------------Sprungschleife für START ------------------
Loopzahl% = 0
Starttimer1% = 0
whilenot %Key = 2
WAITINPUT
Loopzahl% = 0
WHILELOOP 3
Loopzahl% = Loopzahl% +1
IF CLICKED(HSTART&[&LOOP])
IF Loopzahl% = 1
Starttimer1% = 1
ENDIF
ENDIF
IF CLICKED(HPAUSE&[&LOOP])
IF Loopzahl% = 1
Starttimer1% = 0
ENDIF
ENDIF
IF CLICKED(HSTART&[&LOOP])
IF Loopzahl% = 2
Starttimer2% = 1
ENDIF
ENDIF
IF CLICKED(HPAUSE&[&LOOP])
IF Loopzahl% = 2
Starttimer2% = 0
ENDIF
ENDIF
IF CLICKED(HSTART&[&LOOP])
IF Loopzahl% = 3
Starttimer3% = 1
ENDIF
ENDIF
IF CLICKED(HPAUSE&[&LOOP])
IF Loopzahl% = 3
Starttimer3% = 0
ENDIF
ENDIF
IF CLICKED(HRESET&[&LOOP])
IF Loopzahl% = 1
minute1% = 0
Stunde1% = 0
zähler1% = 0
time1& = 0
Locate 2,2
print "0 h "
Locate 2,7
print "0 min "
Locate 2,14
print "00 s "
Starttimer1% = 0
ENDIF
IF Loopzahl% = 2
minute2% = 0
Stunde2% = 0
zähler2% = 0
time2& = 0
Locate 4,2
print "0 h "
Locate 4,7
print "0 min "
Locate 4,14
print "00 s "
Starttimer2% = 0
ENDIF
IF Loopzahl% = 3
minute3% = 0
Stunde3% = 0
zähler3% = 0
time3& = 0
Locate 6,2
print "0 h "
Locate 6,7
print "0 min "
Locate 6,14
print "00 s "
Starttimer3% = 0
ENDIF
ENDIF
Endwhile
If starttimer1% = 1
A% = %wmTimer : Timer1
Endif
If starttimer2% = 1
A% = %wmTimer : Timer2
Endif
If starttimer3% = 1
A% = %wmTimer : Timer3
./../../funcion-referencias/XProfan/endif/'>Endif
Wend
KillTimer
end
|
|
|
| |
|
|
|
| Ah, la hâte sur %wmtimer umgestellt - ok, hat mais chez kleinen Timerwerten den le tort, dass Waitinput ensuite pas plus so zuverlässig ist weshalb je quelque chose comme toujours automatisch dans qui subClassProc auslagere. le principal allez. ^ ^ |
|
|
| |
|
|
|
Web Scanner | oui, c'est ici relativ unkritisch, und dir chez den Zeiten pas um Sekunden. là reicht es si le Minutenangeben einigermaßen hinkommen. Hoffe pour reicht es |
|
|
| |
|
|