Hola compañer@s !
Aunque ya tuve mis dudas
entonces, logré solucionar en su momento la problemática que tenía.
Ahora finalmente cambié la aplicación de VCL.Net a Win32 (con Delphi 2007) y hay cosas que me han dejado de funcionar tal y como me gustaría que funcionasen.
Mi problema es el siguiente :
Creo una aplicación directamente minimizada con TTrayIcon. Para ello en el Source del proyecto tengo puesto :
Código Delphi
[-]program MiForm;
uses
OneInstance in 'OneInstance.pas',
Forms,
Windows,
Messages,
MiForm in 'MiForm.pas' ,
{$R *.res}
var
Handle : THandle;
begin
Handle := CreateMutex(nil, true, 'E1BFB967-E3EB-47EB-977E-780CE7BB4723');
if GetLastError = ERROR_ALREADY_EXISTS then begin
PostMessage(HWND_BROADCAST, messID, 0, 0);
Exit;
end;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.Title := 'Mi Nombre';
Application.CreateForm(TMiForm, MiForm);
Application.ShowMainForm := False;
Application.Run;
if Handle <> 0 then CloseHandle(Handle);
end.
En el evento OnDblClick del TrayIcon tengo :
Código Delphi
[-]procedure TMiForm.TrayIcon1DblClick(Sender: TObject);
begin
Application.ShowMainForm := True;
Application.Restore;
SetForegroundWindow(Self.Handle);
MiForm.Show;
MiForm.Visible := True;
end;
pero también tengo un Popupmenu para el TrayIcon.
Resulta que si hago Doble Click en el icono del TrayIcon, la ventana se abre correctamente, se restaura, aparece un botón en la barra de tareas y todo perfecto.
Ahora bien, si abro el PopupMenu y elijo la opción para abrir mi ventana, que a su vez es una mera llamada a la función TrayIcon1DblClick (PopupMenu1Opcion1.OnClick := TrayIcon1DblClick) , entonces en vez de abrirme y restaurarme la venta en su tamaño normal y original, lo que hace es me deja unicamente el botón en la barra de tareas, y tengo yo expresamente pulsar el botón aparecido en la barra de tareas para que me restaure de nuevo la ventana.
Qué estoy haciendo mal ? En VCL.Net me funcionaba correctamente, pero al parecer ahora en Win32 algo ha cambiado.
Gracias por vuestros consejos