Home » Tipps & Tricks » Applikation » Taskleiste/Tray » Animation zum Systemtray

Animation zum Systemtray

Falls eine Anwendung, die ihr Symbol im SystemTray zeigt und nicht in der Taskleiste, verkleinert wird, sieht es unprofessionell aus, wenn die Animation (der Verkleinerung) zur Taskleiste geht und nicht zum Systemtray. Um dies zu ändern, wird das OnMinimize-Ereignis des Applications-Objekts (z.B. über die Komponente TApplicationEvents) genutzt:

procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
  Screen.DrawAnimatedRects(Handle, IDANI_CAPTION, BoundsRect,
    Rect(Width - 20, Height, Width - 10, Height));
end;

In älteren Delphi-Versionen existiert die Komponente TApplicationEvents noch nicht, deshalb muss man das Ereignis in so einem Fall per Code zuweisen:

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMinimize:=ApplicationEvents1Minimize;
end;

Die Animation aus dem SystemTray erreicht man durch Tauschen der beiden Parameter. Relevant ist hier das Ereignis OnRestore:

procedure TForm1.ApplicationEvents1Restore(Sender: TObject);
begin
  Screen.DrawAnimatedRects(Handle, IDANI_CAPTION,
    Rect(Width - 20, Height, Width - 10, Height), BoundsRect);
end;