ola pessoal estou fazendo um aplicativo que dentre seus procedimentos, ele tambem esconderiaseu icone na system-tray! Consegui este codigo que teóricamente faria isso porem no meu delphi 7 ele não funciona na parte em que se refere ao clicar do mouse no icone quando esta na system-tray ele informa:
Pergunta
Guest danker
ola pessoal estou fazendo um aplicativo que dentre seus procedimentos, ele tambem esconderiaseu icone na system-tray! Consegui este codigo que teóricamente faria isso porem no meu delphi 7 ele não funciona na parte em que se refere ao clicar do mouse no icone quando esta na system-tray ele informa:
[Error] Unit1.pas(16): Undeclared identifier: 'WM_TRAYICON'
[Error] Unit1.pas(16): Illegal message method index
[Error] Unit1.pas(22): Identifier redeclared: 'WM_TRAYICON'
[Error] Unit1.pas(39): Statement expected but 'VAR' found
[Error] Unit1.pas(44): Undeclared identifier: 'Self'
este é o código...
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, shellapi;
type
TForm1 = class(TForm)
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure IdTrivialFTP1Status(ASender: TObject;
const AStatus: TIdStatus; const AStatusText: String);
private
{ Private declarations }
procedure WMTrayIcon(var Msg : TMessage); message WM_TRAYICON;
public
{ Public declarations }
end;
Const
WM_TRAYICON = WM_USER+1;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
Hide;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
var NotifyIconData : TNotifyIconData;
begin
Application.ShowMainForm := False;
with NotifyIconData do begin
cbSize := sizeof(TNotifyIconData);
Wnd := Self.Handle;
uId := 0;
uCallBackMessage := WM_TRAYICON;
uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
hIcon := Application.Icon.Handle;
szTip := 'Teste de TryIcon';
end;
Shell_NotifyIcon(NIM_ADD,@NotifyIconData);
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
NotifyIconData : TNotifyIconData;
begin
with NotifyIconData do begin
cbSize := sizeof(TNotifyIconData);
Wnd := Self.Handle;
uId := 0;
uFlags := 0;
end;
Shell_NotifyIcon(NIM_DELETE,@NotifyIconData);
end;
procedure TForm1.WMTrayIcon(var Msg: TMessage);
var
Pt : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
GetCursorPos(Pt);
PopupMenu1.Popup(Pt.X,Pt.Y);
end
else if Msg.lParam = WM_LBUTTONDBLCLK then
Form1.Show;
end;
caso algue possa me ajudar?...
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.