Acabo de encontrar algo que me ha solucionado el problema.
En el evento del form WindowStateChange hay que poner esto:
if frmprincipal.WindowState = wsMinimized then
begin
frmprincipal.WindowState := wsNormal;
frmprincipal.Hide;
frmprincipal.ShowInTaskBar := stNever;
end;
Gracias por la ayuda.
Acabo de ver esto:
http://wiki.lazarus.freepascal.org/Lazarus_known_issues_(things_that_will_ne ver_be_fixed)
:(
De: Manuel Galeote [mailto:info en redbarcelona.com] Enviado el: jueves, 26 de noviembre de 2009 18:58
Para: 'Spanish version of Lazarus List'
Asunto: Re: [Lazarus-es] Ocultar icono del formulario con TrayIcon
Gracias por la respuesta, hab�a probado a asignar la propiedad showintaskbar a stNever pero no me funcionaba, buscando he encontrado que poniendo en el fichero .lpr
Application.Initialize;
Application.ShowMainForm:=false;
Application.CreateForm(Tfrmprincipal, frmprincipal);
Application.Run;
Deber�a ir y efectivamente cuando arranca el form no muestra el icono, pero en cuanto le digo un frmprincipal.show vuelve a aparecer y ya no desaparece, con lo cual vuelvo a tener el mismo problema.
Aunque ya he programado en Pascal y he probando con �xito jvtrayicon de jedi, acabo de empezar con Lazarus y ando algo perdido.
2009/11/26 Manuel Galeote <info en redbarcelona.com>
Uso Lazarus en Windows.
Uso un trayicon y he puesto en el evento formresize del formulario lo siguiente:
frmprincipal.Hide;
TrayIcon1.Show;
Luego en el evento OnDblClick del trayicon esto:
frmprincipal.Show;
TrayIcon1.Show;
El icono del trayicon se ve correctamente y realiza su funci�n.
El icono del formulario principal se ve siempre en la barra de tareas, que debo hacer para que desaparezca cuando el formulario se minimice.
Gracias.
Parece que con TCustomForm.ShowInTaskBar podrias solventar tu problema aunque no lo he probado O:)