Mudar icon em tempo de excecução
Olá,
Estou precisando alterar o icone da aplicação e do TryIcon em tempo de execução.
Tentei usar os dois comandos abaixo mas não altera o icone da aplicação e nem do icone criado abaixo.
ImageList2.GetIcon(1,FormIntegrador.Icon);
ImageList2.GetIcon(1,Application.Icon); procedure TFormIntegrador.FormCreate(Sender: TObject);
begin { Criando TrayIcon, e copiando Icone do Form }
Icon.Handle := LoadIcon(HInstance, 'MAINICON');
nid.cbSize := sizeof(nid);
nid.wnd := Handle;
nid.uID := 1; // Identificador do ícone
nid.uCallBAckMessage := wm_IconMessage;
nid.hIcon := Icon.Handle;
nid.szTip := 'FormIntegrador';
nid.uFlags := nif_Message or
nif_Icon or nif_Tip;
Shell_NotifyIcon(NIM_ADD, @nid); Caption := 'Integração de Dados'; //+ Versao;
// PageControl1.ActivePageIndex := 0 ; //Application.OnException := TrataErros ;
Application.OnMinimize := Ocultar1Click;
Application.OnRestore := Restaurar1Click;
Application.Title := Caption;
Application.HintHidePause := 5000;
end; Att.. Ricardo
ImageList2.GetIcon(1,Application.Icon); procedure TFormIntegrador.FormCreate(Sender: TObject);
begin { Criando TrayIcon, e copiando Icone do Form }
Icon.Handle := LoadIcon(HInstance, 'MAINICON');
nid.cbSize := sizeof(nid);
nid.wnd := Handle;
nid.uID := 1; // Identificador do ícone
nid.uCallBAckMessage := wm_IconMessage;
nid.hIcon := Icon.Handle;
nid.szTip := 'FormIntegrador';
nid.uFlags := nif_Message or
nif_Icon or nif_Tip;
Shell_NotifyIcon(NIM_ADD, @nid); Caption := 'Integração de Dados'; //+ Versao;
// PageControl1.ActivePageIndex := 0 ; //Application.OnException := TrataErros ;
Application.OnMinimize := Ocultar1Click;
Application.OnRestore := Restaurar1Click;
Application.Title := Caption;
Application.HintHidePause := 5000;
end; Att.. Ricardo
Frigorifico Sa
Curtidas 0
Respostas
Wesley Yamazack
26/11/2009
Olá amigo, para mudar o icone da aplicação você faz da seguinte maneira,
Menu Project, opção View Source, e implementa a seguinte linha
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' ;
{$R *.res}
begin
Application.Initialize;
Application.Icon.LoadFromFile('C:\Icones\Icon.ico');
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Pois mudar o icone do executável, eu não vejo a possiblidade, pelo seguinte motivo, as informações de versão, compania, e até mesmo o proprio executável, ficam no arquivo .res, que é gerado junto com o executável, este por sua vez é compilado pelo delphi, e a alteração do seu icone, somente poderá ser feito pelo delphi, ou então pelo windows, clicando com o botão direito em cima dele, e definindo um outro icone, mas qual seria a sua necessidade d emudar o icone da executável ? Por que não faz isso na hora que gerar o executável(pelo delphi).
Com relação ao TrayIcon, vou verificar e logo retornarei.
Um abraço
Wesley Y
Menu Project, opção View Source, e implementa a seguinte linha
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' ;
{$R *.res}
begin
Application.Initialize;
Application.Icon.LoadFromFile('C:\Icones\Icon.ico');
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Pois mudar o icone do executável, eu não vejo a possiblidade, pelo seguinte motivo, as informações de versão, compania, e até mesmo o proprio executável, ficam no arquivo .res, que é gerado junto com o executável, este por sua vez é compilado pelo delphi, e a alteração do seu icone, somente poderá ser feito pelo delphi, ou então pelo windows, clicando com o botão direito em cima dele, e definindo um outro icone, mas qual seria a sua necessidade d emudar o icone da executável ? Por que não faz isso na hora que gerar o executável(pelo delphi).
Com relação ao TrayIcon, vou verificar e logo retornarei.
Um abraço
Wesley Y
GOSTEI 0
Frigorifico Sa
26/11/2009
Olá,
Na verdade acho que só o TryIcon Resolve.
Como a aplicação vai ficar minimizada rodando em BackGround é para o usuario saber quando a aplicação esta rodando algum processo.
Att..
Ricardo
GOSTEI 0
Wesley Yamazack
26/11/2009
Olá amigo, de uma olhada em um artigo que escrevi para devmedia estes dias
https://www.devmedia.com.br/articles/viewcomp.asp?comp=15168&hl=*trayicon*
Ele irá lhe ensinar como usar o Trayicon, fazendo o efeito que você esta querendo.
Um abraço
Wesley Y
https://www.devmedia.com.br/articles/viewcomp.asp?comp=15168&hl=*trayicon*
Ele irá lhe ensinar como usar o Trayicon, fazendo o efeito que você esta querendo.
Um abraço
Wesley Y
GOSTEI 0
Frigorifico Sa
26/11/2009
Wesley,
Sabe onde posso baixar o pacote? Não tenho ele aqui.
Att..
Ricardo
GOSTEI 0
Wesley Yamazack
26/11/2009
Olá amigo,não entendi sua pergunta, pacote ? Como assim ? Seu delphi não tem o TrayIcon ? Qual é sua versão do delphi ?
Att,
Wesley Y
Att,
Wesley Y
GOSTEI 0
Frigorifico Sa
26/11/2009
Olá, Wesley
Meu sistema não tem o TryIcon.
Delphi 7
Att..
Ricardo
GOSTEI 0
Frigorifico Sa
26/11/2009
Wesley,
Tenho o TryIcon sim, Desculpe pelo. Só como é delphi 7 não tem todas as propriedades que vc demonstrou no artigo.
Preciso da propriedade PopMenu e Icons.
Conhece algum outro componente ou uma solução?
Att..
Ricardo
GOSTEI 0
Wesley Yamazack
26/11/2009
Olá amigo,
Vou preparar uma dica pra vc, peço que aguarde.
Um abraço,
Wesley Y
Vou preparar uma dica pra vc, peço que aguarde.
Um abraço,
Wesley Y
GOSTEI 0
Wesley Yamazack
26/11/2009
Olá amigo,
COnsegui achar aqui uma unit que tem o TrayIcon, para delphi 7, adicione ela no seu projeto e irá funcionar com o código mais a baixo que vou te mandar
Unit para Download :
http://www.rwsolution.com.br/TrayIcon.zip
Implemente este código no oncreate do frmprincipal por exemplo :
Var
x : TTrayIcon;
begin
x := TTrayIcon.Create(Self);
x.Icon.LoadFromFile('D:\Sis Quick Tips\Access.ico');
x.PopupMenu := PopupMenu1; // Adicione um PopMenu na tua aplicação
x.Visible := True;
x.Show(True);
Um abraço
Wesley Y
COnsegui achar aqui uma unit que tem o TrayIcon, para delphi 7, adicione ela no seu projeto e irá funcionar com o código mais a baixo que vou te mandar
Unit para Download :
http://www.rwsolution.com.br/TrayIcon.zip
Implemente este código no oncreate do frmprincipal por exemplo :
Var
x : TTrayIcon;
begin
x := TTrayIcon.Create(Self);
x.Icon.LoadFromFile('D:\Sis Quick Tips\Access.ico');
x.PopupMenu := PopupMenu1; // Adicione um PopMenu na tua aplicação
x.Visible := True;
x.Show(True);
Um abraço
Wesley Y
GOSTEI 0
Frigorifico Sa
26/11/2009
Wesley,
Funcionou.
Pode encerrar.
Muito Obrigado.
Att..
Ricardo
GOSTEI 0
Wesley Yamazack
26/11/2009
Olá amigo, que bom que pude ajudar em mais um.
Forte abraço
Wesley Y
Forte abraço
Wesley Y
GOSTEI 0