Fórum Aplicaçao funcionando em Blackground e com ícone no systray #261328
10/12/2004
0
Sei que é possível tentei algumas fórmulas, porém o que consegui até aqui foi deixá-la minimizada na barra de tarefas... mas assim não quero.
Aguardo noticias. Obrigado a todos.
Helio Nascimento
Curtir tópico
+ 0Posts
10/12/2004
Chocoabj2003
Ademilson Beirão
Gostei + 0
10/12/2004
Paulo_amorim
Pesquise no fórum por sys tray, winsystray, e coisas do gênero.
Não eh necessário usar o RxLib se vc não quiser, já que existem códigos que criam para você. Eu tenho um que peguei aqui no fórum
Sobre a aplicação não aparecer, coloque antes da criação dos Forms na Unit de Projeto:
Application.ShowMainForm := False;
Até+
Gostei + 0
10/12/2004
Paulo_amorim
[quote:8756e46e38=´Helio Nascimento´]Obrigado por vc me responder.
Entendi suas explicações.
Se eu colocar nos forms que nao sao para aparecer, a aplicação fica ´escondida´, mas funcionando certo? como o ícono ao lado do relógio certo? E como faria para que o form da aplicação aparecesse quando clicasse com o botão direito do mouse em cima deste ícone e com um menu tipo ´Abrir ´ ´Cancelar´ ´Fechar´, caso este formulario que ja esta com instruçoes para nao aparecer, e como faria para que ele aparecer e depois retornar a mesma condição de antes....[/quote:8756e46e38]
Não é necessário colocar nos Forms, coloque na aplicação que ela já rodará sem aparecer na barra de tarefas.
Para que ele apareça no Systray, deve-se usar um componente ou algo do gênero.
Para aparecer um menu quando você clicar com o botão direito, utilize o componente PopUpMenu.
Até+
Gostei + 0
10/12/2004
Paulo_amorim
Segue um código para colocar o componente no Systray:
const
WM_ICONTRAY = WM_USER + 1;
type Form1 = class(TForm)
procedure TrayMessage(var Msg: TMessage); message WM_ICONTRAY;
private
TrayIconData: TNotifyIconData;
end;
(...)
{ no evento OnCreate do Form principal }
//Define as propriedades do ícone
with TrayIconData do
begin
cbSize := SizeOf(TrayIconData);
Wnd := Handle;
uID := 0;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_ICONTRAY;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
//Cria o ícone no win system tray
Shell_NotifyIcon(NIM_ADD, @TrayIconData);
//-----------------------------------------------------------
{ no evento OnDestroy do Form principal }
Shell_NotifyIcon(NIM_DELETE, @TrayIconData);
//-----------------------------------------------------------
procedure TForm1.TrayMessage(var Msg: TMessage);
begin
case Msg.lParam of
//Clique duplo do mouse faz algo
WM_LBUTTONDBLCLK:
begin
//codigo
end;
//Clicar com o botão direito faz algo
WM_RBUTTONDOWN:
begin
//codigo
end;
end;
end;Com isso ele irá criar o ícone no systray. Coloque um PopUpMenu e mande-o executar no WM_RBUTTONDOWN...
Espero que ajude
Até+
Gostei + 0
04/01/2005
Shaolin
Gostei + 0
06/03/2005
Pistesil
Gostei + 0
06/03/2005
Paulo_amorim
Eu usei no D5, e não lembro de ter que colocar qq coisa... deu algum erro?
Se sim, tente colocar ShellAPI
Coloque um componente TPopUpMenu no form, e programe para ele aparecer no WM_RBUTTONDOWN (naquele case da rotina)
Espero que ajude
Ate+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)