![]() |
XX min Timer mit nachfolgender Aktion
Also ich bin ganz neu im Gebiet von Delphi und würde gerne wissen wie man einen Timer so programmiert, dass er nach XX Minuten eine Meldung ausgibt.
ich hoffe dass ich hilfe kriege und bedanke mich mal im vorraus. MFG Nasty edit: geht das sonst auch anders? |
Re: XX min Timer mit nachfolgender Aktion
Delphi-Quellcode:
[edit]bei if i=... die Minuten*60 reinschreiben ;)[/edit]
var
i:Integer //... procedure TForm1.Timer1Timer(Sender: TObject); begin i:=i+1; if i=180 then ShowMessage('3 min vorbei!'); end; //Intervall von Timer1=1000 |
ahhh danke das hilft mir weiter. aber der ist seeeehr ungenau. ich wollte das dann auchnoch so machen dass der timer losgeht wenn man klickt.
Delphi-Quellcode:
geht das so?
procedure TForm2.Button2Click(Sender: TObject);
begin x:=StrToInt(edit1.text) end; procedure TForm2.Timer1TimerTimer(Sender: TObject); begin i:=i+1; if i=x then label1.caption:='zeit ist um'; end; |
Re: XX min Timer mit nachfolgender Aktion
ch glaube ich bin zu dumm dafür! Bitte un HILFE!!
|
Re: XX min Timer mit nachfolgender Aktion
ok ich habe es mir mit fast 1 h recherchen selbst beantwortet.
Delphi-Quellcode:
naja so lernt man mehr
var
Form2: TForm2; i:integer; x:integer; implementation uses Unit1; {$R *.dfm} procedure TForm2.Timer1TimerTimer(Sender: TObject); begin Timer1Timer.Enabled := false; end; procedure TForm2.Button1Click(Sender: TObject); begin form1.show; form2.Hide; end; procedure TForm2.Button2Click(Sender: TObject); begin x:=StrToInt(edit1.text); timer1timer.enabled:=true; repeat begin i:=i+1; sleep(1000) end until (i=x); if (i=x) then ShowMessage(IntToStr(x)+' sec sind vorbei'); end; ahso ich habe den timer timer1timer genannt. |
Re: XX min Timer mit nachfolgender Aktion
Hallo nastytrouble,
Herzlich Willkommen in der Delphi-PRAXiS! Wiso diese zweite Form?? und du machst jetz glaub ich was doppelt! -- ich beschreib dir aufjedenfall mal ein beispiel! Also es gibt in Delphi eine Komponente die heist TTimer diese funktioniert so: du setzt in der Eigenschaft Interval die zeit in millisecunden für eine secunde also 1000 und dann wenn der timer loslaufen soll stellst du die eigenschaft Enable auf true; wenn dann die in interval angegebene zeit rum ist dann wird das ereigniss OnTime ausgelösst! Dort kannst du dann einfach eine Meldung ausgeben! Hier ein Beispiel:
Delphi-Quellcode:
Wenn noch Fragen sind frag ruhig!
//Der Button zum Starten des Timers
procedure TForm1.BStartClick(Sender: TObject); Var Zeit : Cardinal; Begin Zeit := StrToInt(ELaenge.text); // Der Text aus dem Edit ELaenge wird in eine Zahl umgewandelt Zeit := Zeit * 1000 * 60 // So wird eine Eingabe in Minuten ermöglicht TZeit.Interval := Zeit; // Die Zahl wird in den Timer gesetzt TZeit.Enable := True; // Der Timer wird gestartet End; //Der Timer TZeit bzw. dessen ereigniss OnTime procedure TForm1.TZeiTimer(Sender: TObject); Begin ShowMessage( #13 + #13 + 'DIE ZEIT IST ABGELAUFEN!' + #13 + #13); // Eine Meldung wird ausgegeben // ^-> die #13 sind zeilenumbrüche! dadurch wird das Meldungsfenster größer ;-) End; //Button um den Timer zu stoppen! procedure TForm1.BStopClick(Sender: TObject); Begin TZeit.Enable := False; // Stoppt den Timer End; Liebe Grüße Stefan alias Light PS: In der Delphi Hilfe gibt es auch manchmal ganz praktische Beispiele! (dierekt auf einem Wort im Editor den Cursor setzen und F1 drücken ruft die hilfe für das Objekt oder die eigenschaft auf) [edit]Hab ich vergessen: im design modus den timer auf false setzen! *G*[/edit] |
XX min Timer mit nachfolgender Aktion
das ist nett. danke aber mit dem sleep geht es in meinem fall auch(es erfüllt immerhin seinen zweck), obwohl es das ganze prog lahm legt.
und ich habe es selbst hingekriegt! :mrgreen: :mrgreen: |
Re: XX min Timer mit nachfolgender Aktion
zur Info, falls du mal mehr Variabeln hast funktioniert das auch so:
Delphi-Quellcode:
var
i,x,blub,zeit,min,sec,h,tag:Integer; namen,wohnort,strasse:String; klingel,haustuer:boolean; //... |
Re: XX min Timer mit nachfolgender Aktion
danke. das weiß ich aber schon. hab das jetz nur so gamacht weil ich die 2. variable später zugefügt habe und das da wieder vergessen hatte^^.
|
Re: XX min Timer mit nachfolgender Aktion
Kannst es auch mit gettickcount machen
Delphi-Quellcode:
..
x:=gettickcount; while gettickcount-180 < x do Application.ProcessMessages; showmessage('3 min sind rum.'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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-2025 by Thomas Breitkreuz