Tema: button
Ver Mensaje Individual
  #3  
Antiguo 11-06-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 18
mjjj Va por buen camino
yo denuevo... gracias por la ayuda... me funciona pefecto lo de poner mi programa al lado de la hora. Ahora, lo que me pasa es que aparece con ningun icono, lo que quisiera hacer es asignarle un icono cuando mi programa se coloque al lado de la hora en windows.

Estoy trabajando con delphi 2006, en windows XP... estos son los codigos que he utilizado...

const
WM_ICONTRAY = WM_USER + 1;

{ Private declarations }
NotifyInfo : TNotifyIconData;
procedure Icontray(var Msg: TMessage); message WM_ICONTRAY;

Cerrar1: TMenuItem;
Abrir1: TMenuItem;

procedure TForm1.Abrir1Click(Sender: TObject);
begin
Show;
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end;

procedure TForm1.Cerrar1Click(Sender: TObject);
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
Application.ProcessMessages;
Application.Terminate;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
// Hide;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Visible:=false;
with NotifyIconData do begin
hIcon := Icon.Handle;
StrPCopy(szTip, Application.Title);
Wnd := Handle;
uCallbackMessage := WM_ICONTRAY;
uID := 1;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
cbSize := sizeof(TNotifyIconData);
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
end;

procedure TForm1.Icontray(var Msg: TMessage);
var
CursorPos : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
GetCursorPos(CursorPos);
SetForegroundWindow(Handle); // suggested by Berend Radstaat
PopupMenu1.Popup(CursorPos.x, CursorPos.y);
PostMessage(Handle, WM_NULL, 0, 0); // suggested by Berend Radstaat
end else
inherited;
end;

espero me puedan ayudar con este problemita... este codigo lo saque de otro hilo, funciona pero no me aparece con ningun icono, la verdad es que no entiendo muy bien el codigo, solo quiero que me digan que poner y donde... muchas gracias..
Responder Con Cita