![]() |
Timer Pausieren???
hallo, ich habe folgendes porblem zu lösen.
ich habe einen timer auf meine form, der ein 2 minuten intervall hat. wenn ich nun eine bestimmte funktion ausführe, soll der timer pausiert werden und nach beenden der funktion wieder an der stelle einsteigen an der er ausgestiegen ist. wenn ich das über enabled mache fängt er ja immer wieder von f´vorne an! gibt es da ne ander möglichkeit für!? |
Re: Timer Pausieren???
Setz doch das Interval auf 1 Sekunde und zähle eine Property im Timer-Event hoch. Wenn diese Property 120 erreicht hat, führst Du Deinen Code aus. Nun kannst Du den Timer en-/disablen und die Property hat immer noch den letzten Wert.
|
Re: Timer Pausieren???
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin timer1.enabled := false; deinefunktionoderprocedure(parameterirgendwas); timer1.enabled := true; end; das müsste eigentlich klappen |
Re: Timer Pausieren???
also wenn ich dich jetzt richtig verstehe meinst du es so!?
Delphi-Quellcode:
var sekunden : integer;
darf_ausfuehren : boolean;
Delphi-Quellcode:
...procedure ontimer1.....
begin if darf_ausfuehren then inc(sekunden); if (sekunden = 120) and (darf_ausfuehren) then begin //auszuführender Code sekunden := 0; end; end; __________________________________________________ __________________________________________________ _______________ Zitat:
genau das will ich ja nicht! aber trotzdem danke |
Re: Timer Pausieren???
So meinte ich das. Allerdings würde ich keine globalen Variablen verwenden, sondern eine Property des Formulars definieren.
|
Re: Timer Pausieren???
ok danke, und wie geht das mit der proberty?
damit arbeite ich nie! kannst mir das vielleicht schnell erklären!? |
Re: Timer Pausieren???
Delphi-Quellcode:
Nun kannst Du auf "Wert" zugreifen.
type TMyForm = class(TForm)
private FWert: integer; ... public property Wert: integer read FWert write FWert; ... end; procedure TMyForm.FormCreate(Sender: TObject); begin FWert := 0; end; |
Re: Timer Pausieren???
also kann ich die Variable Fwert einmal für die Sekunden zum zählen nehmen und noch eine solche variable aufmachen zur kontrolle!?
und was ist jetzt anders, bzw besser als bei globalen variablen!? |
Re: Timer Pausieren???
Eine Property ist immer an eine Instanz gebunden, globale Variablen gelten über alle Instanzen. Daher sollte man globale Variablen nur da einsetzen, wo sie Sinn machen, z.B. als Referenzzähler.
|
Re: Timer Pausieren???
Wobei man hier nicht einmal eine neue Property anlegen muss, sondern gleich den Tag des Timers nehmen kann.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz