Pois é, Anderson... eu até usava este código para TrayIcon, mas depois que vi o 
componente da JEDI, sinceramente deixei o "hardcoded" de lado. E o resultado 
final ficou tão bom ou melhor quanto com o código que eu tinha (idêntico ao seu)

Sds,
Ricardo.

desenvolvimento <[EMAIL PROTECTED]> escreveu:                                  
desculpe entrar na conversa...
 
 sobre o componente trayicon, vc pode usar esse:
 
 ////////////////////////// inicio do trayicon
 unit TrayIcon;
 
 interface
 
 uses
   SysUtils, Windows, Messages, Classes, Graphics, Controls, ShellAPI, Forms, 
menus;
 
 const WM_TOOLTRAYICON = WM_USER+1;
       WM_RESETTOOLTIP = WM_USER+2;
 
 type
 
 TTrayIcon = class(TComponent)
 
 private
 
 { Field Variables }
 
 IconData: TNOTIFYICONDATA;
     fIcon : TIcon;
     fToolTip : String;
     fWindowHandle : HWND;
     fActive : boolean;
     fShowDesigning : Boolean;
 
 { Events }
 
 fOnClick     : TNotifyEvent;
     fOnDblClick  : TNotifyEvent;
     fOnRightClick : TMouseEvent;
     fPopupMenu   : TPopupMenu;
 
 function AddIcon : boolean;
     function ModifyIcon : boolean;
     function DeleteIcon : boolean;
 
 procedure SetActive(Value : boolean);
     procedure SetShowDesigning(Value : boolean);
     procedure SetIcon(Value : TIcon);
     procedure SetToolTip(Value : String);
     procedure WndProc(var msg : TMessage);
 
 procedure FillDataStructure;
     procedure DoRightClick( Sender : TObject );    
 
 protected
 
 public
 
 constructor create(aOwner : TComponent); override;
     destructor destroy; override;
 
 published
 
 property Active : boolean read fActive write SetActive;
     property ShowDesigning : boolean read fShowDesigning write 
SetShowDesigning;
     property Icon : TIcon read fIcon write SetIcon;
     property ToolTip : string read fTooltip write SetToolTip;
 
 property OnClick     : TNotifyEvent read FOnClick write FOnClick;
     property OnDblClick  : TNotifyEvent read FOnDblClick write FOnDblClick;
     property OnRightClick : TMouseEvent  read FOnRightClick write 
FonRightClick;
     property PopupMenu : TPopupMenu read fPopupMenu write fPopupMenu;
 
 end;
 
 procedure Register;
 
 implementation
 
 {$R TrayIcon.res}
 
 procedure TTrayIcon.SetActive(Value : boolean);
 begin
    if value <> fActive then begin
      fActive := Value;
      if not (csdesigning in ComponentState) then begin
         if Value then begin
            ShowWindow(Application.Handle, SW_HIDE);
            AddIcon;
         end else begin
            ShowWindow(Application.Handle, SW_SHOW);
            DeleteIcon;
         end;
      end;
   end;
 end;
 
 procedure TTrayIcon.SetShowDesigning(Value : boolean);
 begin
   if csdesigning in ComponentState then begin
      if value <> fShowDesigning then begin
         fShowDesigning := Value;
         if Value then begin
            AddIcon;
         end else begin
            DeleteIcon;
         end;
      end;
   end;
 end;
 
 procedure TTrayIcon.SetIcon(Value : Ticon);
 begin
   if Value <> fIcon then
     begin
       fIcon.Assign(value);
       ModifyIcon;
     end;
 end;
 
 procedure TTrayIcon.SetToolTip(Value : string);
 begin
    if length( Value ) > 62 then
       Value := copy(Value,1,62);
    fToolTip := value;
    ModifyIcon;
 
 end;
 
 constructor TTrayIcon.create(aOwner : Tcomponent);
 begin
   inherited create(aOwner);
   FWindowHandle := AllocateHWnd( WndProc );
   FIcon := TIcon.Create;
 end;
 
 destructor TTrayIcon.destroy;
 begin
 
 if (not (csDesigning in ComponentState) and fActive)
      or ((csDesigning in ComponentState) and fShowDesigning) then
         DeleteIcon;
 
 FIcon.Free;
   DeAllocateHWnd( FWindowHandle );
   inherited destroy;
 
 end;
 
 procedure TTrayIcon.FillDataStructure;
 begin
 
 with IconData do begin
 
 cbSize := sizeof(TNOTIFYICONDATA);
      wnd := FWindowHandle;
      uID := 0; // is not passed in with message so make it 0
      uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
      hIcon := fIcon.Handle;
      StrPCopy(szTip,fToolTip);
      uCallbackMessage := WM_TOOLTRAYICON;
 
 end;
 
 end;
 
 function TTrayIcon.AddIcon : boolean;
 begin
    FillDataStructure;
    result := Shell_NotifyIcon(NIM_ADD,@IconData);
 
 // For some reason, if there is no tool tip set up, then the icon
    // doesn't display.  This fixes that.
 
 if fToolTip = '' then
       PostMessage( fWindowHandle, WM_RESETTOOLTIP,0,0 );
 
 end;
 
 function TTrayIcon.ModifyIcon : boolean;
 begin
 
 FillDataStructure;
    if fActive then
       result := Shell_NotifyIcon(NIM_MODIFY,@IconData)
    else
       result := True;
 
 end;
 
 procedure TTrayIcon.DoRightClick( Sender : TObject );
 var MouseCo: Tpoint;
 begin
 
 GetCursorPos(MouseCo);
 
 if assigned( fPopupMenu ) then begin
       SetForegroundWindow( Application.Handle );
       Application.ProcessMessages; 
       fPopupmenu.Popup( Mouseco.X, Mouseco.Y );
    end;
 
 if assigned( FOnRightClick ) then
       begin
          FOnRightClick(self,mbRight,[],MouseCo.x,MouseCo.y);
       end;
 end;
 
 function TTrayIcon.DeleteIcon : boolean;
 begin
    result := Shell_NotifyIcon(NIM_DELETE,@IconData);
 end;
 
 procedure TTrayIcon.WndProc(var msg : TMessage);
 begin
    with msg do
      if (msg = WM_RESETTOOLTIP) then
         SetToolTip( fToolTip )
      else if (msg = WM_TOOLTRAYICON) then begin
         case lParam of
            WM_LBUTTONDBLCLK   : if assigned (FOnDblClick) then 
FOnDblClick(self);
            WM_LBUTTONUP       : if assigned(FOnClick)then FOnClick(self);
            WM_RBUTTONUP       : DoRightClick(self);
         end;
      end
      else // Handle all messages with the default handler
         Result := DefWindowProc(FWindowHandle, Msg, wParam, lParam);
 
 end;
 
 procedure Register;
 begin
   RegisterComponents('ANDERSON', [TTrayIcon]);
 end;
 
 end.
 
 ////////////////////////////////////////////////////// fim do trayicon
 
 Sobre o outro componente até tem jeito, mas dá mais trabalho.... acho q 
compensa vc instalar a biblioteca jedi... tem muita coisa boa lá.
 
 Anderson
 
 ----- Original Message ----- 
   From: Leandro 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Monday, June 18, 2007 3:47 PM
   Subject: Re: [delphi-br] Criar botão na barra de título
 
 Blz Ricardo,
 
 Desculpe a demora na resposta... vc sabe se tem como eu instalar só esses dois 
componentes ao
   invés da suite Jedi toda?
 
 Obrigado,
 
 Leandro
 
 ----- Original Message ----- 
   From: Ricardo César Cardoso 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Friday, June 15, 2007 10:17 AM
   Subject: Re: [delphi-br] Criar botão na barra de título
 
 Bom dia Leandro!
 
 Acho que o melhor que vc tem a fazer é baixar a JediVCL e usar o componente 
TJvCaptionButton (paleta TJvButtons) que faz exatamente o que vc precisa.. Na 
edição 81 da revista Clube Delphi saiu uma matéria explicando o funciona este e 
outros componentes. 
 
 Montei um exemplo de como usar o TJvCaptionButton e TJvTrayIcon e estou 
colocando no meu site.
 
 
http://www.esnips.com/doc/495f7cf6-823f-4f1e-91cf-fdb5d90b5aff/JvDesktopAlert_JvTrayIcon_JvCaptionButton_Demo
 
 Sds,
   Ricardo.
 
 Leandro <[EMAIL PROTECTED]> escreveu: Cara. esse exemplo funcionou só no XP... 
preciso que funcione no 98/2000/2003 etc também...
   saberia de mais algum exemplo?
 
 Obrigado,
 
 Leandro
 
 ----- Original Message ----- 
   From: Thiago Filiano (America Soft) 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Thursday, June 14, 2007 8:54 AM
   Subject: Re: [delphi-br] Criar botão na barra de título
 
 tem sim, da uma olhada nesse link!
 
 http://www.esnips.com/doc/13240d68-c0bd-4714-b9be-0c82782e0b10/Caption-Buttons 
 
 []'s
 
 Thiago Filiano
   msn: [EMAIL PROTECTED]
   11-8288-4402
 
 Leandro escreveu:
   > Boa tarde,
   >
   >
   > Alguém tem um exemplo de como criar um botão na barra de título de uma 
janela? Seria um
   > botão com uma "?" que ao ser clicado mostraria uma ajuda sobre algum item 
da janela, parecido
   > com o que acontece em algumas janelas de configuração do Windows.
   >
   > []',s
   >
   > Leandro
   >
   >
   > [As partes desta mensagem que não continham texto foram removidas]
   >
   >
   >
   > 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 _
 
 ---------------------------------
   Novo Yahoo! Cadê? - Experimente uma nova busca. 
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 [As partes desta mensagem que não continham texto foram removidas]
 
 
     
             



       
---------------------------------
Novo Yahoo! Cadê? - Experimente uma nova busca. 

[As partes desta mensagem que não continham texto foram removidas]

Responder a