{ Quando usamos a propridade Position de um Form para centralizá-lo estamos sujeitos a um inconveniente: dependendo da posição/tamanho da barra de tarefas do Windows, o nosso Form poderá ficar parcialmente coberto por ela. Uma forma eficaz de resolver este problema é posicionar o form considerando apenas a área livre do Desktop. Vejamos este exemplo: - Crie um novo projeto; - Na seção implementation digite a procedure abaixo: } procedure FormPos(Form: TForm; const Horz, Vert: byte); { Horz: 1=esquerda, 2=centro, 3=direita Vert: 1=topo, 2=centro, 3=em baixo } var R: TRect; begin if not SystemParametersInfo(SPI_GETWORKAREA, 0, @R, 0) then R := Rect(0, 0, Screen.Width, Screen.Height); with Form do case Horz of 1: Form.Left := 0; 2: Form.Left := (R.Right - R.Left - Width) div 2; 3: Form.Left := R.Right - Width; end; with Form do case Vert of 1: Form.Top := 0; 2: Form.Top := (R.Bottom - R.Top - Height) div 2; 3: Form.Top := R.Bottom - Height; end; end; { - Coloque dois TEdit's: Edit1 e Edit2; - Coloque um TButton e altere o evento OnClick deste conforme abaixo: } procedure TForm1.Button1Click(Sender: TObject); begin FormPos(Form1, StrToInt(Edit1.Text), StrToInt(Edit2.Text)); end;
O conteúdo desta página pode ajudar alguém? Compartilhe!