Aloa,
danke für die Antworten.
Ich habe es mal so versucht:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 =
class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure ApplicationActivate(Sender:TObject);
//procedure ApplicationMinimize(Sender:TObject);
procedure ApplicationDeactivate(Sender:TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnActivate := ApplicationActivate;
//Application.OnMinimize := ApplicationMinimize;
Application.OnDeactivate := ApplicationDeactivate;
end;
procedure TForm1.ApplicationActivate(Sender: TObject);
begin
Timer1.Enabled := False;
end;
//procedure TForm1.ApplicationMinimize(Sender: TObject);
//begin
//Timer1.Enabled := False;
//end;
procedure TForm1.ApplicationDeactivate(Sender: TObject);
begin
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//if Application.Minimize then //auch mit Application.OnMinimize versucht, aber bei beidem kommt eine Fehlermeldung
// begin
// Timer1.Enabled := False;
// end
// else begin
sleep(10000);
Application.Minimize;
Timer1.Enabled := False;
// end;
end;
end.
Das mit dem minimieren, wenn die Anwendung inaktiv ist, funktioniert soweit.
Leider blockiert diese für die 10 Sekunden des Timers, welche als Verzögerung dienen soll.
Desweiteren setzt der Timer auch ein, wenn ich die Anwendung direkt minimiere,
wodurch dieses wiederum 10 Sekunden blockiert, was ja Irrsinn ist.
Ich habe es versucht zu lösen in dem ich das in den Bemerkungen einfügte, bisher hat nicht funktioniert.
Mit freundlichem Gruß
Lostriga