Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar MenuSistema en barra de tareas (https://www.clubdelphi.com/foros/showthread.php?t=47925)

Khronos 11-09-2007 12:06:39

Mostrar MenuSistema en barra de tareas
 
Hola, me gustaria saber si hay alguna forma de mostrar el menu que aparece cuando pulsas el boton derecho sobre el nombre de tu aplicacion en la barra de tareas.
Estoy usando un form sin bordes y no consigo encontrar la forma. Uso delphi 2007.

http://img72.imageshack.us/my.php?image=phoenixhn8.jpg

Salu2

dec 11-09-2007 12:29:18

Hola,

Basándome en código fuente encontrado Scalabium.com aquí tienes un primer intento de función "ShowSystemMenu()":

Código Delphi [-]
function ShowSystemMenu(wHandle: hwnd;
 posX, posY: integer): boolean;
var
  flags: cardinal;
  hMenuItem: DWORD;
  hMenuHandle: HMENU;
begin
  hMenuHandle := GetSystemMenu(wHandle, false);
  flags := TPM_LEFTBUTTON or TPM_RIGHTBUTTON or TPM_RETURNCMD;
  hMenuItem := LongWord(TrackPopupMenu(hMenuHandle,
                flags, posX, posY, 0, wHandle, nil));
  if (hMenuItem > 0) then
    SendMessage(wHandle, WM_SYSCOMMAND, hMenuItem, 0);
  result := (hMenuItem > 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Ejemplo de llamada a la función
  ShowSystemMenu(self.Handle, self.Left,
   self.Top+GetSystemMetrics(SM_CYCAPTION));
end;

Tú adáptalo como mejor te parezca.

Khronos 11-09-2007 13:28:50

Gracias por tu interes dec, pero tu code no me funciono. No se si tiene algo que ver, pero en el evento oncreate recorto las esquinas del form.

Código Delphi [-]
procedure DibujarControl(Control: TWinControl);
var
R:TRect;
Rgn: HRGN;
begin
        with Control do
        begin
        R:=ClientRect;
        rgn:=CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 8, 10);
        Perform(EM_GETRECT, 0, lParam(@r));
        InflateRect(r, -4, -4);
        Perform(EM_SETRECTNP, 0, lParam(@r));
        SetWindowRgn(Handle, rgn, True);
        Invalidate;
        end;
        end;

Salu2

dec 11-09-2007 13:38:52

Hola,

Hay que ver qué quieres decir con "no funcionó". ¿No se muestra el menú? ¿Se muestra pero no donde tú quieres?

PD. Ojo, que yo no estoy muy puesto, y es posible que lo que dices que haces influya del alguna manera. Habrá que verlo.

Khronos 11-09-2007 15:28:36

No se muestra ningun menu, solo quiero que se vea el menu que aparece al darle click con el boton derecho en el nombre de tu aplicacion situado en la barra de tareas.

Salu2 y gracias


La franja horaria es GMT +2. Ahora son las 00:15:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi