|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
junior103 Aprendiz
Registrado: Quarta-Feira, 1 de Julho de 2015 Mensagens: 204
|
Enviada: Sex Fev 17, 2017 2:00 pm Assunto: Como verificar se TNotifyIconData foi criado? |
|
|
Boa tarde...
Tenho a procedure que cria o icone e que destroy ....
A que cria funciona normal segue o codigo: Código: | procedure TForm3.CriaIcone;
var
NotifyIconData: TNotifyIconData;
begin
with NotifyIconData do begin
cbSize:= SizeOf;
Wnd:= AllocateHWnd(WMTrayIcon);
uID:= 0;
uCallbackMessage:= WM_TRAYICON;
uFlags:= NIF_ICON or NIF_TIP or NIF_MESSAGE;
hIcon := GetClassLong(FmxHandleToHWND(Form3.Handle),GCL_HICONSM);
szTip := 'Exemplo da utilização do TrayIcon';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
ShowWindow(FindWindow(nil,'IconeFiremonkey'),SW_HIDE);
end; |
Mas o destroy icone não funciona
Segue o codigo:
Código: | procedure TForm3.DestroyIcone;
var
NotifyIconData: TNotifyIconData;
begin
NotifyIconData.cbSize:= SizeOf(TNotifyIconData);
NotifyIconData.Wnd:= FmxHandleToHWND(Form3.Handle);
NotifyIconData.uID:= 0;
NotifyIconData.uFlags:= 0;
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData);
end; |
E se eu chamar o criaicone ele cria mais um e maisum e mais um e assim todas as vezes que a procedure criaicone for chamada... preciso que crie apenas se ele não foi criado. |
|
Voltar ao Topo |
|
|
strak2012 Colaborador
Registrado: Segunda-Feira, 13 de Janeiro de 2014 Mensagens: 1518 Localização: Maceió - AL
|
Enviada: Sex Fev 17, 2017 2:08 pm Assunto: |
|
|
Recomendações:
Código: | var
NotifyIconData: TNotifyIconData; |
Como global e não local tal como:
Código: | type
TForm3 = class(TForm)
{...}
public
{ Public declarations }
NotifyIconData: TNotifyIconData; // esta será vista pelos metodos CriaIcone e DestroyIcone
end; |
Criando icone
Código: | procedure TForm3.CriaIcone;
begin
with NotifyIconData do begin
cbSize:= SizeOf;
Wnd:= AllocateHWnd(WMTrayIcon);
uID:= 0;
uCallbackMessage:= WM_TRAYICON;
uFlags:= NIF_ICON or NIF_TIP or NIF_MESSAGE;
hIcon := GetClassLong(FmxHandleToHWND(Form3.Handle),GCL_HICONSM);
szTip := 'Exemplo da utilização do TrayIcon';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
ShowWindow(FindWindow(nil,'IconeFiremonkey'),SW_HIDE);
end; |
Deletando icone
Código: | procedure TForm3.DestroyIcone;
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData); // NotifyIconData é global e ja possui informações do icone presente
end;
|
_________________ Tudo podemos quando tudo sabemos! |
|
Voltar ao Topo |
|
|
junior103 Aprendiz
Registrado: Quarta-Feira, 1 de Julho de 2015 Mensagens: 204
|
Enviada: Sex Fev 17, 2017 2:14 pm Assunto: |
|
|
strak2012 escreveu: | Recomendações:
Código: | var
NotifyIconData: TNotifyIconData; |
Como global e não local tal como:
Código: | type
TForm3 = class(TForm)
{...}
public
{ Public declarations }
NotifyIconData: TNotifyIconData; // esta será vista pelos metodos CriaIcone e DestroyIcone
end; |
Criando icone
Código: | procedure TForm3.CriaIcone;
begin
with NotifyIconData do begin
cbSize:= SizeOf;
Wnd:= AllocateHWnd(WMTrayIcon);
uID:= 0;
uCallbackMessage:= WM_TRAYICON;
uFlags:= NIF_ICON or NIF_TIP or NIF_MESSAGE;
hIcon := GetClassLong(FmxHandleToHWND(Form3.Handle),GCL_HICONSM);
szTip := 'Exemplo da utilização do TrayIcon';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
ShowWindow(FindWindow(nil,'IconeFiremonkey'),SW_HIDE);
end; |
Deletando icone
Código: | procedure TForm3.DestroyIcone;
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData); // NotifyIconData é global e ja possui informações do icone presente
end;
|
|
strak2012 , funcionou!!! Obrigado por me ajudar!!! |
|
Voltar ao Topo |
|
|
junior103 Aprendiz
Registrado: Quarta-Feira, 1 de Julho de 2015 Mensagens: 204
|
Enviada: Sex Fev 17, 2017 2:15 pm Assunto: |
|
|
strak2012 escreveu: | Recomendações:
Código: | var
NotifyIconData: TNotifyIconData; |
Como global e não local tal como:
Código: | type
TForm3 = class(TForm)
{...}
public
{ Public declarations }
NotifyIconData: TNotifyIconData; // esta será vista pelos metodos CriaIcone e DestroyIcone
end; |
Criando icone
Código: | procedure TForm3.CriaIcone;
begin
with NotifyIconData do begin
cbSize:= SizeOf;
Wnd:= AllocateHWnd(WMTrayIcon);
uID:= 0;
uCallbackMessage:= WM_TRAYICON;
uFlags:= NIF_ICON or NIF_TIP or NIF_MESSAGE;
hIcon := GetClassLong(FmxHandleToHWND(Form3.Handle),GCL_HICONSM);
szTip := 'Exemplo da utilização do TrayIcon';
end;
Shell_NotifyIcon(NIM_ADD, @NotifyIconData);
ShowWindow(FindWindow(nil,'IconeFiremonkey'),SW_HIDE);
end; |
Deletando icone
Código: | procedure TForm3.DestroyIcone;
begin
Shell_NotifyIcon(NIM_DELETE, @NotifyIconData); // NotifyIconData é global e ja possui informações do icone presente
end;
|
|
strak2012 , funcionou!!! Obrigado por me ajudar!!! |
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|