![]() |
Schleifenfunktion?
Hallo,
ich brauche eine Art Schleifenfunktion. Dies soll bewirken, dass alle X Stunden (Edit2.text) etwas ausgeführt wird (Button1.Click) Die soll allerdings nur geschehen, wenn ich eine Checkbox angeklickt wurde (checkbox1.ckecked := true). Welche Schleife kann ich da am besten wie nehmen? |
Re: Schleifenfunktion?
TTImer, oder besser als geplanter Task unter Windows
|
Re: Schleifenfunktion?
Zitat:
Ich kann dann des ja einfach als geplanten Task unter Windows eintragen und dann im On Form Create den Buttonclick festlegen. |
Re: Schleifenfunktion?
warum bestehst du unbedingt auf eine schleife?
|
Re: Schleifenfunktion?
Guten Abend,
wenn Du mit Deinem Programm bestimment willst wie oft, oder wann etwas gestartet werden soll, so ist dieser ![]() Grüße Klaus |
Re: Schleifenfunktion?
Wenn ich das nicht mit einer Schleife mache, muss ich ja jedes Mal das Programm neu starten.!?
|
Re: Schleifenfunktion?
Das wird ja von Windows erledigt
|
Re: Schleifenfunktion?
Erzähl doch einmal was Dein Programm machen soll.
Vielleicht können wir Dir da besser helfen? Eine Schleife ist ein denkbar schlechte Wahl um etwas wiederkehrendes, das so weit auseinanderliegt (x Stunden), auszuführen. Da ist ein Timer schon die bessere Alternative. Der Timer hat ein Interval (in ms) das Du entsprechend setzen kannst. Auch kann der Timer ein und ausgeschaltet werden (enabled = true oder false). Da würde dann Deine Checkbox ganz gut passen. Grüße Klaus |
Re: Schleifenfunktion?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Ich hab es nun mal so gemacht aber iwie stimmt das was nicht.
Delphi-Quellcode:
Ich hab ein Prog (siehe Bild im Anhang) und da soll das so geschehen, das sich alle 3 Stunden Button1 geclickt wird
procedure TfrmMain.CheckBox1Click(Sender: TObject);
VAR stunden, i : longint; begin IF (CheckBox1.Checked = true) THEN BEGIN stunden := StrToInt(Edit2.text); stunden := stunden * 3600000; END; FOR i := 1 TO 2 DO BEGIN Button1.Click; sleep(1000); END; i := i-1; end; |
Re: Schleifenfunktion?
Oh je. Mach einen Windows-Task, der das Programm alle drei Stunden aufruft. Im Programm schließt Du nach dem Klicken das Programm wieder. Somit keine x geöffneten Fenster.
|
Re: Schleifenfunktion?
Zitat:
Und es bietet einige Nachteile |
Re: Schleifenfunktion?
ich finde es immer noch, dass der Ansatz falsch ist.
Aber Du willst es ja nicht anders.
Delphi-Quellcode:
Die delay Funktion findest Du
procedure TfrmMain.CheckBox1Click(Sender: TObject);
VAR zeit, i : longint; begin IF CheckBox1.Checked THEN BEGIN zeit := StrToInt(Edit2.text); zeit := zeit * 3600; END; i:=0; // fast endlos Schleife while CheckBox1.checked do BEGIN if i = zeit then begin Button1.Click; i:=0 end; //sleep(1000); delay(1000); inc(i,1000); END; end; ![]() Grüße Klaus |
Re: Schleifenfunktion?
Zitat:
|
Re: Schleifenfunktion?
Oder so:
Delphi-Quellcode:
Gute Nacht.
procedure TForm1.CheckBox1Click(Sender: TObject);
var stunden: Integer; zeit: LongInt; begin if checkbox1.Checked then begin stunden:=StrToInt(Edit1.Text); zeit:=stunden * 3600; Timer1.Interval:=zeit*1000; end; Timer1.Enabled:=checkbox1.Checked; end; procedure TForm1.Timer1Timer(Sender: TObject); begin button1.Click; end; Grüße Klaus |
Re: Schleifenfunktion?
Sorry, aber von allen Lösungen ist Deine echt die schlechteste. Wenn man wüsste, was Dein Programm macht, könnte man Dir noch besser helfen. Einen Button anklicken, der dann wieder irgendwas macht.
Du könntest eine Consolen-App z.B. mit Parameter aufrufen und dann entsprechenden Code ausführen. Quasi ist alles besser, als das, was Du vor hast. |
Re: Schleifenfunktion?
Zitat:
|
Re: Schleifenfunktion?
Und warum das ganze nicht per Parameter an die Anwendung übergeben? Oder aus einer Ini / XML / Text-Datei auslesen?
|
Re: Schleifenfunktion?
Zitat:
Angezeigt werden (Twebbrowser?) geparst werden (TidHttp?)? Grüße Klaus |
Re: Schleifenfunktion?
Delphi-Quellcode:
Er soll den Standardbrowser öffnen und dann anzeigen
ShellExecute(Application.Handle, 'open',
PChar(sLabel3.Caption), nil, nil, SW_ShowNormal); |
Re: Schleifenfunktion?
Mach Dir eine Konsole, übergib als ersten Paramter die Website und alles ist gut. Dann kannst Du bei mehreren Internetseiten mehrere Tasks erstellen und aufrufen lassen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 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