...minimze the application visually to the tray (TNA) ?

Author: rlibby

Category: Forms

function MinimizeToTray(Handle: HWND): Boolean;
var  
  
hwndTray: HWND;
  rcWindow: TRect;
  rcTray: TRect;
begin
  
// Check passed window handle
  
if IsWindow(Handle) then
  begin
    
// Get tray handle
    
hwndTray := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'TrayNotifyWnd', nil);
    // Check tray handle
    
if (hwndTray = 0) then
      
// Failure
      
Result := False
    else
    begin
      
// Get window rect and tray rect
      
GetWindowRect(Handle, rcWindow);
      GetWindowRect(hwndTray, rcTray);
      // Perform the animation
      
DrawAnimatedRects(Handle, IDANI_CAPTION, rcWindow, rcTray);
      // Hide the window
      
ShowWindow(Handle, SW_HIDE);
    end;
  end
  else
    
// Failure
    
Result := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  
MinimizeToTray(Handle);
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base