RSS

Posicionar Form’s em relação ao Desktop do Windows

28 nov
 

{ 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;
Anúncios
 
Deixe um comentário

Publicado por em 28/11/2009 em Estudos Delphi

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: