Ver Mensaje Individual
  #1  
Antiguo 27-10-2006
Cheerpipe Cheerpipe is offline
Miembro
 
Registrado: oct 2006
Posts: 46
Reputación: 0
Cheerpipe Va por buen camino
Corrección del menu de sistema (en aplicaciones delphi)

Bueno, hace tiempo que vengo leyendo temas en el foro pero no habia tenido la oportunidad de participar.

He estado buscando una forma de corregir el menu de la barra de tareas de las aplicacioens delphi (agregar tamaño, mover y maximizar) sin encontrar forma sencilla. (si es que estuviese posteado en el foro, pido disculpas).

arme este unit que soluciona el problema

Código Delphi [-]
unit FixSystemMenu;

interface
uses ComObj, windows, forms;

type
  ITaskbarList = interface
    ['{56FDF342-FD6D-11d0-958A-006097C9A090}']
       function HrInit: HResult; stdcall;
       function AddTab(hwnd: Cardinal): HResult; stdcall;
       function DeleteTab(hwnd: Cardinal): HResult; stdcall;
       function ActivateTab(hwnd: Cardinal): HResult; stdcall;
       function SetActiveAlt(hwnd: Cardinal): HResult; stdcall;
  end;

procedure SetFixSystemMenu();

implementation

procedure SetFixSystemMenu();
const
  CLSID_TaskBarList: TGUID ='{56FDF344-FD6D-11D0-958A-006097C9A090}';
  IID_ITaskBarList: TGUID ='{56FDF342-FD6D-11D0-958A-006097C9A090}';

var
  FTaskbarList: ITaskBarList;
begin
  if (Application.ActiveFormHandle <> 0) then
  begin
     FTaskbarList := CreateComObject(CLSID_TaskbarList) as ITaskbarList;
     FTaskbarList.HrInit;
     FTaskbarList.HrInit;
     FTaskbarList.AddTab(Application.ActiveFormHandle);
  end;

end;
INITIALIZATION
  SetWindowLong(Application.Handle, GWL_EXSTYLE, GetWindowLong(Application.Handle,GWL_EXSTYLE) or WS_EX_TOOLWINDOW);
end.


basta con hacerle un include desde el formulario principal del proyecto, y en el oncreate del formulario principal llamar la funcion SetFixSystemMenu.

Por otro lado, estoy intentando crear ventanas MDI hijas en estado maximizado, hasta el momento no obtengo el efecto exacto que deseo, por lo que si hay alguien mas intereraso, me contacta y trabajamos junto en ese problema.

PD: no puse en la parte de trucos porque prefiero que se pruebe primero.
Responder Con Cita