Pause in ein Lazarus Programm einbauen
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Pause in ein Lazarus Programm einbauen
Ich habe folgendes Problem:
Ich habe ein Lazarus Programm, in dem an einer bestimmten Stelle eine 2 Sekunden lange Pause gemacht werden soll.
Nun kenn ich den Befehl für diese Pause nicht :/
Könnt ihr mir helfen?
Ich habe es schon mir pause(2000) oder delay(2000) versucht aber da kam jedes mal "Identifier not found".
Ich habe ein Lazarus Programm, in dem an einer bestimmten Stelle eine 2 Sekunden lange Pause gemacht werden soll.
Nun kenn ich den Befehl für diese Pause nicht :/
Könnt ihr mir helfen?
Ich habe es schon mir pause(2000) oder delay(2000) versucht aber da kam jedes mal "Identifier not found".
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Pause in ein Lazarus Programm einbauen
Hi,
wenn man nicht gerade mit Threads programmiert, lässt sich das bei GUI-Programmen meines Wissens garnichtmal so leicht umsetzen .
Es gibt die TTimer-Komponente. Hiermit lässt sich in der Richtung einiges machen. Die ist aber nicht immer geeignet.
Viele Grüsse, Euklid
wenn man nicht gerade mit Threads programmiert, lässt sich das bei GUI-Programmen meines Wissens garnichtmal so leicht umsetzen .
Es gibt die TTimer-Komponente. Hiermit lässt sich in der Richtung einiges machen. Die ist aber nicht immer geeignet.
Viele Grüsse, Euklid
-
- Lazarusforum e. V.
- Beiträge: 564
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Pause in ein Lazarus Programm einbauen
Hallo Have a nice Day,
am einfachsten ist eine Pause mit der Prozedur sleep(1000) [Einheit in ms] zu erzielen. allerdings wird der ganze PC zum Schlafen gebracht.
Eleganter geht es z. B. mit folgendem:
ms in Millisekunden.
Viel Erfolg.
Gruß, Linkat
am einfachsten ist eine Pause mit der Prozedur sleep(1000) [Einheit in ms] zu erzielen. allerdings wird der ganze PC zum Schlafen gebracht.
Eleganter geht es z. B. mit folgendem:
Code: Alles auswählen
uses LCLIntf;
procedure pause(const ms:integer);
var tstart,tende :cardinal;
begin
tstart:=GetTickCount;
tstart:=tstart+ms;
repeat
tende:=GetTickCount;
Application.ProcessMessages;
until tende>tstart;
end;
Viel Erfolg.
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS
Re: Pause in ein Lazarus Programm einbauen
Was verstehst du unter PC? Ein Linux oder Windows legst du damit bestimmt nicht lahm, nur den Hauptthread deines Anwendung.Linkat hat geschrieben: am einfachsten ist eine Pause mit der Prozedur sleep(1000) [Einheit in ms] zu erzielen. allerdings wird der ganze PC zum Schlafen gebracht.
-
- Lazarusforum e. V.
- Beiträge: 564
- Registriert: So 10. Sep 2006, 23:24
- OS, Lazarus, FPC: Linux Mint 22.1; Lazarus 4.0 FPC 3.2.2; RaspiOS
- CPU-Target: AMD 64, ARM 64
- Wohnort: nr Stuttgart
Re: Pause in ein Lazarus Programm einbauen
Hallo theo,
hast natürlich Recht.
Gruß, Linkat
hast natürlich Recht.
Gruß, Linkat
Linux Mint 21.3; Lazarus 3.4 FPC 3.2.2; RaspiOS
-
- Beiträge: 59
- Registriert: Fr 2. Nov 2012, 19:44
Re: Pause in ein Lazarus Programm einbauen
Danke Leute für eure Hilfe ! :)
Hat mir sehr geholfen
Hat mir sehr geholfen
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Pause in ein Lazarus Programm einbauen
Im "Mainthread" muss immer ereignisoriebntiert programmiert werden (sonst hängt die GUI des Programms). Also solltest Du keine "Pause"! einbauen, sondern einen TTimer verwenden und die Aktionen nach der gewünschten Zeit damit starten.Have a nice Day hat geschrieben:Ich habe ein Lazarus Programm, in dem an einer bestimmten Stelle eine 2 Sekunden lange Pause gemacht werden soll.
In einem "Worker Thread" kannst Du sleep() verwenden.
-Michael