Criar componente(TPanel) Via código

Delphi

15/01/2009

Olá Pessoal!
Estou criando um sistema e esbarrei em um problema.
Bom, parte das funcionalidades do sistema é responsável pelo
cadastramento de ´quarto´, o problema é que e a cada registro
novo que for adicionado, é criado um TPanel na janela principal, fazendo
referência a este quarto(registro).
Alguém tem uma luz para este probelma?!

Desde já Obrigado! :)


Fabricio.ribeiro

Fabricio.ribeiro

Curtidas 0

Respostas

Vmlima

Vmlima

15/01/2009

Caro colega, utilize este exemplo de botões criados dinamicamente para um sistema de mesas de restaurante para fazer o seu com panels...


procedure TForm1.Button1Click(Sender: TObject);
var b:tbutton;
begin
   for contador:=1 to 10 do begin
      b:=Tbutton.create(self);
      b.visible:=false;
      b.parent:=self;
      b.left:=10;
      b.top:=Contador*30;
      b.Caption:=IntToStr(contador);
      b.name:=´Btn´+inttostr(contador);
      b.visible:=true;
   end;
end;


Espero ter ajudado, senão, email me e eu te ajudo, fazendo com panels mesmo...
att.


GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

15/01/2009

Obrigado vmlima!
Farei o devido teste!


GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

15/01/2009

Olá novamente!
Fiz o teste com código acima e foi um sucesso,
porém surgiu outra dúvida como faço para criar
eventos destes componentes que serão criados
após a exeção da aplicação?!


GOSTEI 0
Woinch

Woinch

15/01/2009

Basta você criar uma procedure com exatamente o mesmo cabeçalho do evento que você quer criar, por exemplo o OnExit:

procedure TForm1.ExecutaExit(Sender: TObject);
begin
  ShowMessage(´Executou Exit!´);
end;


E atribuir o evento como se fosse uma propriedade:

b.OnExit := ExecutaExit;


Espero ter ajudado...


GOSTEI 0
Vmlima

Vmlima

15/01/2009

Mais mastigado impossivel...


procedure TForm1.Button1Click(Sender: TObject);
var b:tbutton;
begin
   for contador:=1 to 10 do begin
      b:=Tbutton.create(self);
      b.visible:=false;
      b.parent:=self;
      b.left:=10;
      b.top:=Contador*30;
      b.Caption:=IntToStr(contador);
      b.name:=´Btn´+inttostr(contador);
      b.visible:=true;
      b.onclick:=clicou;
   end;
end;

procedure TForm1.clicou(sender: TObject);
begin
   ShowMessage( (sender as TButton).Name );
end;


Tente aí, divirta-se...

Att...


GOSTEI 0
Fabricio.ribeiro

Fabricio.ribeiro

15/01/2009

Muito Obrigado vmlima!
Eu ja havia tentando criar os proceditmentos,
porém faltava atribuição o evento ao qual
o componente faz referência durante a sua criação.

Obrigado!


GOSTEI 0
POSTAR