Rebon, das bringt nix, bei einem 30s Delay.
Wenn du deine Maus bewegst "feuerst" du etliche Events.
Wenn du jetzt einfach so was in den Mainloop reinklatscht wird das auch zig mal pro Sekunde ausgeführt (und dein Programm wird stocken, wenn diese Aktion länger als ein paar ms dauert).
Hier, mal ein Beispiel mit 30 Sekunden Delay.
Alle 30 Sek wird eine Textdatei ausgelesen (Pfad evtl. anpassen) und in das StringGadget gepastet (nur die erste Zeile).
Code: Alles auswählen
EnableExplicit
Enumeration
#Window
EndEnumeration
Enumeration
#StringGadget
#EditorGadget
#ButtonGadget
EndEnumeration
Enumeration
#File
EndEnumeration
#FilePath = "C:\testfile.txt"
OpenWindow(#Window, 0, 0, 400, 300, "Delay Test", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
StringGadget(#StringGadget, 5, 5, 390, 20, "")
EditorGadget(#EditorGadget, 5, 30, 390, 200)
ButtonGadget(#ButtonGadget, 5, 235, 390, 60, "Aus EditorGadget ausschneiden")
Define.i EventID
Define.i TimerID
Define.i TimerLenght = 30000
AddWindowTimer(#Window, TimerID, TimerLenght)
Repeat
EventID=WaitWindowEvent(20)
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case #ButtonGadget
SendMessage_(GadgetID(#EditorGadget),#WM_CUT,0,0)
EndSelect
Case #PB_Event_Timer
If EventTimer() = TimerID
ReadFile(#File, #FilePath)
SetGadgetText(#StringGadget, ReadString(#File))
CloseFile(#File)
EndIf
EndSelect
Until EventID = #PB_Event_CloseWindow