Im Hintergrund weiter arbeiten
Im Hintergrund weiter arbeiten
Ich habe ein Fenster, welches arbeitet solange es aktiv ist. Wenn ich irgendwo anders draufklicke bleibt es stehen auch die Hauptschleife (Repeat Forever). Da eine Zeit gezählt wird muss es aber auch weiter laufen wenn es inaktiv ist. Und genau da ist das Problem!
Mit welchem Befehl ist das lösbar?
Mit welchem Befehl ist das lösbar?
Danke Mark S.
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Wenn du ein anderes Fenster öffnest und das alte soll aber noch "reaktionsfähig" sein-dann benutze "WindowEvent" und dann ein minimales Delay (um den Rechner ned voll auszulasten)..Ich weis nicht wie du deine Timer Routine gemacht hast, aber wenn diese auf Delays aufbaut, solltest du dir eine andere lösung ausdenken, weil sonst haste ja noch ne zusätzliche Verzögerung wenn du das nächste delay noch einbaust...
d.H.:
Du öffnest das 2te Fenster, machst WindowEvent() da hinein, und kopierst die ganze Timer-Routine da hinein.....und zusätzlich noch die Befehlslisten für das neue fenster....
Hoffe das war nicht zu kompliziert erklärt-wei-es ist ned kompliziert.. ^^
(Ich geb mir aber mühe)....
Gr33tz
Marc
P.s.: Wenn du deine Timer-Routine in eine prozedur packst gehts einfacher...
d.H.:
Du öffnest das 2te Fenster, machst WindowEvent() da hinein, und kopierst die ganze Timer-Routine da hinein.....und zusätzlich noch die Befehlslisten für das neue fenster....
Hoffe das war nicht zu kompliziert erklärt-wei-es ist ned kompliziert.. ^^
(Ich geb mir aber mühe)....
Gr33tz
Marc
P.s.: Wenn du deine Timer-Routine in eine prozedur packst gehts einfacher...
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Also ich hätts so gemacht:Allerdings ist der Code nicht für genaue Dinge gedacht, wenn man zwischenzeitlich das Fenster dauern minimiert und wiederherstellt.
Code: Alles auswählen
Procedure BeepThread(a.l)
Beep_(888, 100)
EndProcedure
If OpenWindow(0, 0, 0, 400, 300, #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "TimerTest")
Delay.l = 1000
Time.l = ElapsedMilliseconds() + Delay
Repeat
If ElapsedMilliseconds() > Time
Time + Delay
CreateThread(@BeepThread(), 0)
EndIf
Select WindowEvent()
Case #PB_EventCloseWindow
Break
Case 0
Delay(1)
EndSelect
ForEver
EndIf
Mit Theards geht es einfach nicht! Ich möchte den code unten ablaufen lassen wenn das fenster inaktiv ist aber es geht einfach nicht auch nicht über ein WindowEvent()???
Code: Alles auswählen
Procedure Close()
For e = 0 To CountLaufwerke - 1
If Laufwerk(e)\Status = 0
If Date() >= Laufwerk(e)\CloseTime - 5 And Laufwerk(e)\CloseSoundTime = 0
Laufwerk(e)\CloseSoundTime = 1
If CloseSound.s <> "Ausgeschaltet"
If CloseSound.s < "3"
PlaySound(Val(CloseSound.s))
Else
PlaySound(4)
EndIf
EndIf
EndIf
If Date() >= Laufwerk(e)\CloseTime
UseCDAudio(e)
EjectCDAudio(0)
Laufwerk(e)\Status = 1
EndIf
EndIf
Next e
EndProcedure
Danke Mark S.
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten: