Newsgroup: it.comp.lang.delphi
Titolo: Shell_notifyicon

Ciao a tutti!
Esperti Delphi, voi sicuramente mi potrete aiutare.
Dall'oggetto avrete capito che vorrei mettere l'icona del mio programma
nella Tray Bar quando questo viene minimizzato.
Dunque:
1 - come intercetto la 'minimizzazione' del form? C'è un evento preciso?
2 - una volta messa l'icona nella Tray Bar come faccio ad intercettare il
doppio click su di essa per farla riattivare?
NON RISPONDERE VIA MAIL . G R A Z I E.
Grazie a tutti e buona continuazione
Mary
-- 
Posted from 
jolly.intesa.it
 [194.196.14.1] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Per fare questo ci sono diversi componenti che gestiscono tutto il
necessario, prova con gli RX, sono gratuiti. Tra i vari trovi un TTrayIcon
che ti permette di controllare la l'icona e tutto quello che le sta dietro.
Ciao Ciao !

Dunque:
{TrayIt.dpr}
program TrayIt;
uses
  Windows,
  Forms,
  TrayIt1 in 'TrayIt1.pas' {Form1};
{$R *.RES}
begin
  Application.Initialize;
  Application.ShowMainForm := False;
  Application.CreateForm(TForm1, Form1);
  ShowWindow(Application.Handle, SW_HIDE);
  Application.Run;
end.
{TrayIt1.pas}
unit TrayIt1;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ShellAPI, ExtCtrls;
type
  TForm1 = class(TForm)
    PopupMenu1: TPopupMenu;
    Open1: TMenuItem;
    Exit1: TMenuItem;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Open1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    procedure WndProc(var Msg : TMessage); override;
  public
    { Public declarations }
    IconData : TNotifyIconData;
    IconCount : integer;
  end;
var
  Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.WndProc(var Msg : TMessage);
var
  p : TPoint;
begin
  case Msg.Msg of
    WM_USER + 1:
    case Msg.lParam of
      WM_RBUTTONDOWN: begin
         GetCursorPos(p);
         PopupMenu1.Popup(p.x, p.y);
      end
    end;
  end;
  inherited;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  BorderIcons := [biSystemMenu];
  IconCount := 0;
  IconData.cbSize := sizeof(IconData);
  IconData.Wnd := Handle;
  IconData.uID := 100;
  IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
  IconData.uCallbackMessage := WM_USER + 1;
  IconData.hIcon := Application.Icon.Handle;
  StrPCopy(IconData.szTip, Application.Title);
  Shell_NotifyIcon(NIM_ADD, @IconData);
  Timer1.Interval := 1000;
  Timer1.Enabled := true;
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
  Form1.Show;
  ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
  Shell_NotifyIcon(NIM_DELETE, @IconData);
  Application.ProcessMessages;
  Application.Terminate;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caNone;
  Form1.Hide;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  case(IconCount) of
    0 : IconData.hIcon := LoadIcon(0, IDI_APPLICATION);
    1 : IconData.hIcon := LoadIcon(0, IDI_ASTERISK);
    2 : IconData.hIcon := LoadIcon(0, IDI_EXCLAMATION);
    3 : IconData.hIcon := LoadIcon(0, IDI_HAND);
    4 : IconData.hIcon := LoadIcon(0, IDI_QUESTION);
    5 : IconData.hIcon := Application.Icon.Handle;
  end;
  inc(IconCount);
  if IconCount > 5 then
    IconCount := 0;
  Application.Title := TimeToStr(Now);
  StrPCopy(IconData.szTip, Application.Title);
  Shell_NotifyIcon(NIM_MODIFY, @IconData);
end;
begin
  ShowWindow(Application.Handle, SW_HIDE);
end.

 program TrayIt;
Abracadabra,
non voglio essere cattivo, ma già una volta hai preso del codice postato da
altri senza citare le fonti ... in quest'altro caso quello che hai postato è
un Tip abbastanza conosciuto : scrivi l'autore, metti come riferimento
relativoURL o se proprio "non ti ricordi" da dove lo hai scaricato specifica
che quel codice  non è tuo, ma è stato scaricato dalla rete!
--
- Carlo -

 {TrayIt1.pas}
una sorgente vale più di mille parole..........
--
 _______________________________________
        Gnaffy SoftWare
   web: 
http://gnaffy.tripod.com/
   e-mail: Gna...@Wappi.com
   e-mail: 
bmq...@tin.it
   ICQ#: 76488613
 ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯