Barra de Tarefas

Delphi

11/04/2006

Como faço para quando abrir um form ele abrir na barra de tarefas como no msn, quando abre uma janela de chat??


Rudá

Rudá

Curtidas 0

Respostas

Paulocesar1301

Paulocesar1301

11/04/2006

Se for na Tray... a Suite de Componentes JVCL tem um ótimo... que por sinal é o que eu uso :wink:


GOSTEI 0
Rudá

Rudá

11/04/2006

É barra de tarefas, quando inicio qualquer programa ele aparece na barra de tarefas o programa(não é o trayicon), eu quero fazer igual ao MSN, que quando abrirmos uma nova janela para conversar ele aparece como se fosse um novo programa na barra de tarefas entendeu???


GOSTEI 0
Paulocesar1301

Paulocesar1301

11/04/2006

Você pode fazer um programinha a parte para receber e/ou enviar as mensagens e vai abrí-lo sem pre que o ´usuário X´ encaminhar uma mensagem... e, obviamente, testará se a janela com o nome ´conversando com o usuário X´ existe, se sim você pega apenas o handle da janela, do componente recebedor de mensagens e inclui o texto recebido, se não... passe como parâmetro para o programa ´nome do usuário´ e ´mensagem´. Não esqueça de criar um ´parâmetro testador´
que só deixará que o programa seja aberto se o mesmo existir:

ShellExecute(PChar(´<caminho>\seuprograma.exe´), nil, PChar(´ testador ´ + UsuarioQueEnviou + ´ ´ + Mensagem))


OBS.: Não esqueça de tratar a variável string ´mensagem´, pois parâmetros com espaços podem gerar problemas.

É bem simples e vai abrir uma janela para cada usuário que conversar com você... obvio tb que, como no MSN, é preciso ter um sistema mãe que verificará o recebimento/envio dessas mensagens.

Uso isso hoje por aqui e funciona blz.

Abs e Bons Códigos :wink:


GOSTEI 0
Rudá

Rudá

11/04/2006

Eu vou ter que criar um programa para poder fazer uma janela para a conversar??

Não tem como fazer de outro jeito não??


GOSTEI 0
Paulocesar1301

Paulocesar1301

11/04/2006

... no meu caso ficou muito mais simples criar outro... e mais rápido também (menos linhas de código e tal)... mas se vc preferir, pode usar a idéia de um outro programa e encapsular um um sistema só... criando um outro form e passando as mensagens como parâmetro... funciona igual, o único detalhe é que quando fores atualizar qualquer coisa no sistema... terá que atualizar tudo... por isso eu prefiro a modularização.


GOSTEI 0
Rudá

Rudá

11/04/2006

O meu problema é que precisso que apareça na barra de tarefas como outro programa.

Como faço isso?


GOSTEI 0
Rudá

Rudá

11/04/2006

UP!


GOSTEI 0
Rudá

Rudá

11/04/2006

Achei esse código e funcionou perfeitamente

procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle:= Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent:= GetDesktopwindow;
end;

O problema agora é o icone.

Eu coloco o icone na proprieda do form, só que na hora que eu dou um alt tab aparece um icone todo distorcido, ele aumenta de 16x16 para 32x32, só que existe no icone o 32x32 e não deveria acontecer isso, como posso resolver??


GOSTEI 0
POSTAR