Botões dinâmicos conforme quantidade

Delphi

29/08/2013

Boa tarde Srs.
Estou querendo criar um tela onde determino um valor inteiro e preciso criar botões ou componentes conforme a quantidade, tipo um sistema que controla uma lan house, informo 20 maquinas e ele me cria na tela 20 componentes encaixados uns aos outros, como se fosse uma matriz fazendo um redimensionando caso a tela seja aumentada ou diminuida, parecido com um grid.


Obrigado
Felipe Nunes

Felipe Nunes

Curtidas 0

Respostas

Rafael Reis

Rafael Reis

29/08/2013

Qual é a sua dúvida em específico?
GOSTEI 0
Rafael Reis

Rafael Reis

29/08/2013

Qual é a sua dúvida em específico?
GOSTEI 0
Felipe Nunes

Felipe Nunes

29/08/2013

se existe algum procedimento ou um componente que faça isso!
GOSTEI 0
Rafael Reis

Rafael Reis

29/08/2013

Qual é a sua dúvida em específico?
GOSTEI 0
Rafael Reis

Rafael Reis

29/08/2013

criei este método abaixo para vc ter uma noção de como fazer, divirta-se


procedure TForm1.CriarBotoes;
var
    btn: TBitBtn;
    event: TNotifyEvent;
    i: Integer;
    j: Integer;
    leftAtual: integer;
    topAtual: integer;
    larguraPadraoBotao: integer;
    alturaPadraoBotao: integer;
begin
    larguraPadraoBotao:= 70; // vc precisa ver qual largura e altura vai querer que os botões tenham
    alturaPadraoBotao:= 25;

    topAtual := 0;
    leftAtual := 0;

     //numero de colunas, depende do tamanho da sua tela e do tamanho dos botões
    for i := 1 to 5 do
    begin
        if i > 1 then
        begin
            topAtual := topAtual + alturaPadraoBotao + 2;
            leftAtual := 0;
        end;

       // número linhas informado por vc
       for j := 1 to 5 do
       begin
           btn := TBitBtn.Create(Self);
           btn.Left := leftAtual;
           btn.Top := topAtual;
           btn.Width := larguraPadraoBotao;
           btn.Height := alturaPadraoBotao;
           btn.Caption :=  'botao'+inttostr(j) + '-'+inttostr(i);
           btn.Visible := true;
           Self.InsertControl(btn);

           // Lmebrando que os métodos criados para cada botão tem que ser criados na sessão published
           TMethod(event).Code := MethodAddress(trim('MetodoASerCriado'));
           TMethod(event).Data := self;
           btn.OnClick := event;

           leftAtual := btn.Left + larguraPadraoBotao + 2;
       end;
    end;
end;


GOSTEI 0
POSTAR