Array
(
)

Barra de Tarefas

Rudá
   - 11 abr 2006

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


Paulocesar1301
   - 12 abr 2006

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


Rudá
   - 12 abr 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???


Paulocesar1301
   - 12 abr 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:

#Código


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:


Rudá
   - 12 abr 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??


Paulocesar1301
   - 12 abr 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.


Rudá
   - 12 abr 2006

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

Como faço isso?


Rudá
   - 13 abr 2006

UP!


Rudá
   - 23 abr 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??