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.