AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Shutdown nach bestimmter Zeit

Ein Thema von FreakyF · begonnen am 7. Nov 2007 · letzter Beitrag vom 8. Nov 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Shutdown nach bestimmter Zeit

  Alt 7. Nov 2007, 20:49
Zitat von FreakyF:
Dann wärs schön, wenn mir jemand scrat1979's Vorschlag nochmal genauer erklären könnte.

Danke
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 :

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.
Angehängte Dateien
Dateityp: exe project1_831.exe (179,0 KB, 8x aufgerufen)
Michael Kübler
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#12

Re: Shutdown nach bestimmter Zeit

  Alt 8. Nov 2007, 08:07
Vielen Dank scrat1979. Dein Programm hat mir wirklich weiterhelfen können.
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#13

Re: Shutdown nach bestimmter Zeit

  Alt 8. Nov 2007, 08:10
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?
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Shutdown nach bestimmter Zeit

  Alt 8. Nov 2007, 20:42
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
Michael Kübler
  Mit Zitat antworten Zitat
FreakyF

Registriert seit: 7. Nov 2007
22 Beiträge
 
#15

Re: Shutdown nach bestimmter Zeit

  Alt 8. Nov 2007, 22:59
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
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Shutdown nach bestimmter Zeit

  Alt 8. Nov 2007, 23:14
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
Michael Kübler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz