Yo estoy usando el TTrayIcon en Delphi XE, y funciona todo correcto... salvo que al recuperar la ventana y querer otra vez minimizarla no ejecuta el evento, si cambio de ventana y vuelvo a la de mi proyecto vuelve a funcionar.
Lo que si hice distinto (y acá puede estar el tema) es que para capturar el evento que minimiza utilicé el de la aplicación:
Código Delphi
[-] Application.OnMinimize := MinimizarAplicacion;
El evento es de los "comunes":
Código Delphi
[-]procedure TFormCustom.MinimizarAplicacion(Sender: TObject);
begin
TrayIcon1.Visible := True;
Hide();
end;
Para restaurar la ventana hice un método que es llamado tanto en el doble click del TaryIcon como en un item del popUpMenu:
Código Delphi
[-]
procedure TFormCustom.Restaurar1Click(Sender: TObject);
begin
RestaurarVentana;
end;
procedure TFormCustom.TrayIcon1DblClick(Sender: TObject);
begin
RestaurarVentana;
end;
procedure TFormCustom.RestaurarVentana;
begin
SetForegroundWindow(Self.Handle);
TrayIcon1.Visible := False;
Show();
WindowState := wsNormal;
end;
Si a alguno se le ocurre que puede estar fallando se agradece.