Title: How to use the DrawAnimatedRects API
procedure TForm1.Button1Click(Sender: TObject);
var
FormRect, TrayRect: TRect;
hTray: THandle;
begin
// Get handle of tray window
hTray := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0,'TrayNotifyWnd', nil);
if hTray 0 then
begin
// This is the source rect for the animation.
FormRect := BoundsRect;
// Get tray window's coordinates as a TRect. This will be the animation's destination rect.
GetWindowRect(hTray, TrayRect);
{
Now perform the actual animation. Note that this code only shows the
animation. It does NOT minimize this application to the tray. I leave
that up to yourself ;-)
Also notice that the Delphi Help documents are very wrong about this
function! Use the official MSDN docs located Microsoft's website.
Instead of IDANI_CAPTION you can also use IDANI_OPEN and IDANI_CLOSE, but
they don't seem to do anything... Maybe they are for future use?
}
if not DrawAnimatedRects(Handle, IDANI_CAPTION, FormRect, TrayRect) then
begin
MessageDlg('DrawAnimatedRects() failed!', mtError, [mbOK], 0);
end;
end
else
begin
MessageDlg('Can''t get tray window handle!', mtError, [mbOK], 0);
end;
end;