Si estoy permitiendo ver un formulario al momento de darle click sobre la opcion configurar del popupmenu1, en el cual tengo solo dos opciones, configurar que muestra en si el formulario como tal, y la segunda opcion es el cerrar, que cumple su funcion tal cual. de manera que si muestro en algun momento la aplicacion.
Este es el procedimiento al cual hago referencia al momento en que minimizo desde la propia ventana una vez abierta en pantalla luego de haber dado click en el configurar del popupmenu, la cual me funciona a la perfeccion:
Cita:
Procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType = SC_MINIMIZE) then begin
with IconData do
begin
cbSize := sizeof(IconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
end;
Shell_NotifyIcon(NIM_ADD, @IconData);
Hide;
end else DefaultHandler(Msg);
end;
|
luego de haberse ejecutado este procedimiento no tengo problemas al minimizar y darle cualquier click encima ya que solo me muestra solo el popupmenu ya mencionado.
el problema esta al ejecutar el onCreate en el que ya me habian colaborado uds alli arriba, luego de ejecutarse se minimiza, pero al darle un click, el primer click, se me muestra el popupmenu junto al formulario de la aplicacion, te muestro aca finalmente como lo deje:
Cita:
procedure TForm1.FormMinimize(Sender: TObject);
begin
with IconData do
begin
cbSize := sizeof(IconData);
Wnd := Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
Shell_NotifyIcon(NIM_ADD, @IconData);
Hide;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := FormMinimize;
Application.Minimize;
ShowWindow(Application.Handle, SW_HIDE);
end;
|
aca recibo la pulsacion sobre el icono minimizado
Cita:
procedure TForm1.mostrarmenu(var Msg : TMessage);
var
p : TPoint;
begin
if Msg.lParam = WM_RBUTTONDOWN then begin
SetForegroundWindow(Handle);
GetCursorPos(p);
PopupMenu1.Popup(p.x, p.y);
PostMessage(Handle, WM_NULL, 0, 0);
end;
end;
|
y por supuesto
Cita:
Uses..... ShellAPI
private
{ Private declarations }
IconData : TNotifyIconData;
procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
procedure mostrarmenu(var Msg : TMessage); message WM_USER+1;
|
gracias por tu colaboracio