Maximar Form no monitor em uso

02/05/2022

0

Boa noite, eu deixei meu form com o border none e criei minha propria barra, no botão de maximizar estou utlizando o seguinte código

 if (frmA7ComparativoVendas.WindowState = wsMaximized) then begin
    frmA7ComparativoVendas.WindowState := wsNormal;
 end else begin
    frmA7ComparativoVendas.WindowState := wsMaximized;
    frmA7ComparativoVendas.SetBounds(0,0,screen.Width,screen.Height-getHeightOfTaskBar);
 end;


Que utiliza a seguinte function

function getHeightOfTaskBar : integer;
var hTaskBar:HWND;
    rect : TRect;
begin
  hTaskbar := FindWindow('Shell_TrayWnd', Nil );
  if hTaskBar<>0 then
    GetWindowRect(hTaskBar, rect);
    Result:=rect.bottom - rect.top;
end;


O problema é o seguinte, se o usuario tem mais de um monitor em uso quando aperta para maximizar o form, ele sempre maximiza o form e move ele para o monitor nº 1. Como eu faço pra ele maximizar e permanecer no monitor que está em uso?
Paulo

Paulo

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar