Delphi Form Maximizado sem Borda

Bom dia
Vou começar meu blog postando algo que fiquei dois dias para resolver.

Precisava de uma tela que ficasse maximizada, mas sem borda, ao remover o BorderStyle para bsNone, ela ocupava todo o desktop, e habilitando ele mostrava a borda.
Abaixo segue a resolução:

Deixe o windowstate=wsnormal, munde o BorderStyle para bsnone.

adicione abaixo na sua unit
private
procedure WMGetMinmaxInfo(var Msg: TWMGetMinmaxInfo);
message WM_GETMINMAXINFO;
// …


Implemente o outro codigo abaixo no corpo da procedure


var
R: TRect;
begin
inherited;

// Obtem o retangulo com a area livre do desktop
SystemParametersInfo(SPI_GETWORKAREA, SizeOf(R), @R, 0);

Msg.MinMaxInfo^.ptMaxPosition := R.TopLeft;
OffsetRect(R, -R.Left, -R.Top);
Msg.MinMaxInfo^.ptMaxSize := R.BottomRight;


e no OnCreate do form implemente o seguinte codigo


SendMessage(Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0);


Pronto seu form estará sem borda e maximizado

Deixe um comentário

%d bloggers like this: