Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Shutdown nach bestimmter Zeit (https://www.delphipraxis.net/102971-shutdown-nach-bestimmter-zeit.html)

scrat1979 7. Nov 2007 19:49

Re: Shutdown nach bestimmter Zeit
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von FreakyF
Dann wärs schön, wenn mir jemand scrat1979's Vorschlag nochmal genauer erklären könnte.

Danke :roteyes:

Ok, ich will ja nicht so sein, habe Dir gerade mal sein ein Ding zusammengeschustert, anbei auch die EXE, damit Du siehst was ich meine. Btw, keine Fehlerbehandlung oder sonstiger Schnickschnack :evil: :

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DateUtils, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Timer1: TTimer;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  ShutDownDateTime : TDateTime;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShutDownDateTime := IncMinute(now, StrToInt(Edit1.Text));
  Label2.Caption := 'Shutdown DateTime: ' + DateTimeToStr(ShutDownDateTime);
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label3.Caption := Format('ShutDown in %d Sekunden...', [SecondsBetween(now, ShutDownDateTime)]);
  if now >= ShutDownDateTime then Begin
      // "=" würde nicht reichen, der Timer wird ja nicht EXAKT am Endzeitpunkt ausgelöst, also auch auf Zeit später
         reagieren.
      Timer1.Enabled := False; // Nicht vergessen!!!!!!!!!!!!!!!!!!!!
      Label3.Caption := 'FERTIG!!!';
      showmessage('Hier was machen...');
  End;

end;

end.

FreakyF 8. Nov 2007 07:07

Re: Shutdown nach bestimmter Zeit
 
Vielen Dank scrat1979. Dein Programm hat mir wirklich weiterhelfen können. :-D

FreakyF 8. Nov 2007 07:10

Re: Shutdown nach bestimmter Zeit
 
Noch eine Frage zu dem Thema. Man hat mir gesagt, dass ich das ganze auch mit sleep() lösen kann.
Das hat auch geklappt.

Meine Frage ist, welche Methode jetzt "eleganter" bzw. sinnvoller ist?

scrat1979 8. Nov 2007 19:42

Re: Shutdown nach bestimmter Zeit
 
Zitat:

Zitat von FreakyF
Noch eine Frage zu dem Thema. Man hat mir gesagt, dass ich das ganze auch mit sleep() lösen kann.
Das hat auch geklappt.

Meine Frage ist, welche Methode jetzt "eleganter" bzw. sinnvoller ist?

Verdammt gute Frage. Ich meine, die Timer-Lösung ist wesentlich eleganter. Die Begründung müsstest Du selbst testen, da ich mit nicht sicher bin:

1. Schau mal die Prozessor-Auslastung während Sleep an (mehr?)
2. Wird WÄHREND dem Sleep das Programm (die Message-Queue) fortgesetzt? (Würde glaub dem Sinn von Sleep wiedersprechen). D.h. man würde während dem "Countdown" das PRogramm einfrieren.

Irgend etwas sagt mir aber, daß die Sleep()-Lösung unsauber ist. Da müssten mal die Cracks eine Begründung liefern oder mir widersprechen...

SCRaT

FreakyF 8. Nov 2007 21:59

Re: Shutdown nach bestimmter Zeit
 
Zitat:

Zitat von scrat1979
1. Schau mal die Prozessor-Auslastung während Sleep an (mehr?)

Dass Sleep nicht elegant ist, war mir klar. Ich frag mich nur, warum so wenig das sleep() verwenden, wo's doch viel simpler ist?
Prozessorauslastung ist bei mir so gering, dass ich nicht sagen kann, was in dieser Hinsicht besser ist


Zitat:

2. Wird WÄHREND dem Sleep das Programm (die Message-Queue) fortgesetzt? (Würde glaub dem Sinn von Sleep wiedersprechen). D.h. man würde während dem "Countdown" das PRogramm einfrieren.
Ich denke schon, dass das Programm während des sleeps() "steht".


Zitat:

Irgend etwas sagt mir aber, daß die Sleep()-Lösung unsauber ist. Da müssten mal die Cracks eine Begründung liefern oder mir widersprechen...
Ich bin auch schon gespannt :coder:

scrat1979 8. Nov 2007 22:14

Re: Shutdown nach bestimmter Zeit
 
Hmmm, also ich denke der große "Nachteil" des Sleep in diesem Fall ist wohl das einfrieren des Programmes, d.h. es kann nicht mehr auf Nachrichten (Mausklicks etc.) reagieren...

SCRaT


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Seite 2 von 2     12   

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