Criar Botoes em RunTime, e centraliza-los no Form, como?

09/02/2006

0

Olá, como faço pra criar botoes em RunTime, e depois de criar colocar eles lado a lado, um do lado do outro, e centralizar todos no meio do Form?

Tem como fazer isso?


Desde já agradeço

[]s


Titanius

Titanius

Responder

Posts

09/02/2006

Cabelo

Tem sim.. use as propriedade [size=18:7c0099d910][b:7c0099d910]Left Top Width e Heigth[/b:7c0099d910] [/size:7c0099d910]do botão para posicioná-los no form...


Responder

09/02/2006

Titanius

Olá cabelo, obrigado pela resposta, porem a tela pode mudar de tamanho e a quantidade de botoes também, então gostaria de saber se alguem jah fez algo parecido..

Obrigado.


Responder

09/02/2006

Cabelo

Não é tão complicado...

vc pode criar uma função que utiliza o número de botões a ser criado e determina a área do form de acordo com a qtd de botões a ser criado...

vc passa a essa função a quantidade de botões, aí é só fazer os cálculos..


Responder

09/02/2006

Michael

Olá!

Após criar os botões, some a largura de todos, mais os eventuais espaços entre eles. Depois, use a fórmula (LarguraForm - LarguraTotal) div 2. Agora vc tem a posição inicial (Left) do primeiro botão. Basta então fazer um loop pela quantidade de botões, e setar o [b:1a735b8062]Left [/b:1a735b8062]de cada um para o valor encontrado anteriormente. No final do loop incremente esse valor com a largura do botão.

var
  Botoes: array[1..5] of TButton;
  I, LarguraTotal, LeftInicial: integer;
begin
  LarguraTotal := 0;
  for I := Low(Botoes) to High(Botoes) do
  begin
    Botoes[I] := TButton.Create(Self);
    Inc(LarguraTotal, Botoes[I].Width);
  end;
  
  LeftInicial := (Self.Width - LarguraTotal) div 2;
   
  for I := Low(Botoes) to High(Botoes) do
  begin
    Botoes[I].Left := LeftInicial;
    Inc(LeftInicial, Botoes[I].Width);
  end;
end;


Não testei esse código, mas acredito que funcione. Os botões ficarão ´colados´ um no outro pq não foi definido um espaço entre eles.

[]´s


Responder

09/02/2006

Aroldo Zanela

Colega,

Tem que exugar o código e tratar algumas situações, mas é basicamente isso aqui:

var Botoes: array of TButton;
    i, n, x, Altura, Largura, Espaco, LaguraTotal, Esquerda, Topo: SmallInt;
begin

  SetLength(Botoes,5);

  n           := Low(Botoes);
  x           := High(Botoes);
  Altura      := 25;
  Largura     := 75;
  Espaco      := 5;
  LaguraTotal := (Largura*x)+(Espaco*x)+(Largura);
  Esquerda    := (ClientWidth - LaguraTotal) div 2;
  Topo        := (ClientHeight-Altura) div 2;

  for i := n to x do
  begin

    Botoes[I]         := TButton.Create(Self);
    Botoes[I].Parent  := Self;
    Botoes[I].Left    := Esquerda;
    Botoes[I].Top     := Topo;
    Botoes[I].Width   := Largura;
    Botoes[I].Height  := Altura;
    Botoes[I].Caption := ´btnTESTE´+IntToStr(I);

    Esquerda  := Esquerda + Largura + Espaco;

  end;

end;



Responder

09/02/2006

Titanius

Valeu pessoal, ajudaram bastante...


[]s


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar