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