Ver Mensaje Individual
  #7  
Antiguo 22-08-2008
sidneyb sidneyb is offline
Miembro
 
Registrado: nov 2007
Posts: 53
Reputación: 19
sidneyb Va por buen camino
Thumbs up por supuesto cHackAll

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
Responder Con Cita