Hallo v2afrank,
ich kann dir leider nicht beantworten warum dies geschieht, aber ich kann dir einen workaround anbieten. Den Fehler konnte ich auch mit meinem XE6 nach stellen, aber ich denke das diese Events von Windows selbst ausgeführt werden und das Delphi das nicht kontrolliert. Ich kann mich da aber auch irren.
Da du aber weist das bei einem OnMinimize auch ein OnRestore folgen muss kannst du dies benutzen um den Fehler zu beheben und dann selbst das OnActivate Event ausführen.
Delphi-Quellcode:
private
{ Private-Deklarationen }
NeedRestore: Boolean;
public
{ Public-Deklarationen }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
procedure TForm7.ApplicationEvents1Activate(Sender: TObject);
begin
if (not NeedRestore) then
Memo1.Lines.add('Activate: '+TimeToStr(Time));
end;
procedure TForm7.ApplicationEvents1Deactivate(Sender: TObject);
begin
Memo1.Lines.add('Deactivate: '+TimeToStr(Time));
end;
procedure TForm7.ApplicationEvents1Minimize(Sender: TObject);
begin
Memo1.Lines.add('Minimize: '+TimeToStr(Time));
NeedRestore := True;
end;
procedure TForm7.ApplicationEvents1Restore(Sender: TObject);
begin
Memo1.Lines.add('OnRestore: '+TimeToStr(Time));
NeedRestore := False;
if (Assigned(Application.OnActivate)) then
Application.OnActivate(Application);
end;