Oft liest man in den unterschiedlichen Foren die Frage wie man seine Anwendung dazu bekommt sich beim Minimieren in den TNA Bereich zu verschieben. Unter anderem findet man hier in der Delphi Library einen ausführlicher Beitrag über dieses Thema: 
...Icons in die TNA hinzufügen, ändern und löschen?
Das normale Minimieren einer Anwendung zur Taskbar wird von Windows visuell dargestellt. Man sieht also optisch das das Fenster der Anwendung zur Taskbar verschoben wird. Implementiert man nun aber die Funktion, dass die Anwendung nicht zur Taskbar sondern in den TNA Bereich verschoben wird, geht diese Effekt nach hinten los da es optisch aussieht als würde die Anwendung zur Taskbar verschoben wird.
Die folgende Funktion zeigt wie man diesen optischen "Minimieren-Effekt" nicht zur Taskbar sondern in den TNA Bereich programmiert.
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 
 | typeTTrayAnimationType = (tatMinimize, tatMaximize);
 
 function TrayAnimation (AForm: TForm; AType: TTrayAnimationType): Boolean;
 var
 HandleTray: HWND;
 RectForm,
 RectTray: TRect;
 begin
 result := False;
 
 HandleTray := FindWindowEx (FindWindow ('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil);
 if (HandleTray <> 0) then
 if GetWindowRect (AForm.Handle, RectForm) then
 if GetWindowRect (HandleTray, RectTray) then
 case AType of
 tatMinimize:
 if DrawAnimatedRects (AForm.Handle, IDANI_CAPTION, RectForm, RectTray) then
 result := True;
 tatMaximize:
 if DrawAnimatedRects (AForm.Handle, IDANI_CAPTION, RectTray, RectForm) then
 result := True;
 end;
 end;
 | 
		
	  
Wichtig dabei ist vor allem die Windows Funktion 
 DRAWANIMATEDRECTS
 DRAWANIMATEDRECTS. Diese sorgt für den optischen Effekt.
Der Aufruf dieser Funktion ist simpel:
		                     
             Delphi-Quelltext
                        Delphi-Quelltext                    
           	 										| 1:2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 
 | procedure TForm1.Button1Click(Sender: TObject);begin
 TrayAnimation (Self, tatMinimize);
 end;
 
 procedure TForm1.Button2Click(Sender: TObject);
 begin
 TrayAnimation (Self, tatMaximize);
 end;
 | 
		
	  
Moderiert von  Narses: Beitrag geprüft und einsortiert am 21.04.2008
Narses: Beitrag geprüft und einsortiert am 21.04.2008