Botões dinâmicos conforme quantidade
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
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
Curtidas 0
Respostas
Rafael Reis
29/08/2013
Qual é a sua dúvida em específico?
GOSTEI 0
Rafael Reis
29/08/2013
Qual é a sua dúvida em específico?
GOSTEI 0
Felipe Nunes
29/08/2013
se existe algum procedimento ou um componente que faça isso!
GOSTEI 0
Rafael Reis
29/08/2013
Qual é a sua dúvida em específico?
GOSTEI 0
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