Problema com criação de componentes dinamicamente

Delphi

04/06/2004

Galera,

Para criar o form dinamicamente está beleza.

Agora como que faço:
1 - para criar um botão dinamicamente neste novo form?
2 - como crio uma função no onclose deste novo form para que ao fecha-lo ele mude uma label do form principal?

Obrigado...


Hell_gentleman

Hell_gentleman

Curtidas 0

Respostas

Thaleshcv

Thaleshcv

04/06/2004

declare a unit buttons na cláusula uses.

no form.create faça:

var
but: TBUTTON;

begin
but:= tbutton.create;
//aplique as propriedades como se fosse um botão normal
end;

end.


GOSTEI 0
Thaleshcv

Thaleshcv

04/06/2004

declare a unit buttons na cláusula uses. no form.create faça: var but: TBUTTON; begin but:= tbutton.create(self); //aplique as propriedades como se fosse um botão normal end; end.



GOSTEI 0
Crash

Crash

04/06/2004

declare a unit buttons na cláusula uses. no form.create faça:
var 
but: TBUTTON; 

begin 
but:= tbutton.create(self); 
//aplique as propriedades como se fosse um botão normal 
end; 

end.


Não esqueça de passar a propriedade Parent do botão (Parent:= Form1).

Agora criar Eventos em tempo de Execução creio eu que nao tem jeito. O que vc pode fazer é criar o Evento antes e depois somente setar ao botão.

t+[/code]


GOSTEI 0
Cabelo

Cabelo

04/06/2004

Para criar um botão por exemplo :

s_botao := TBitBtn.Create(self);
with s_botao do
begin
Parent := l_parent;
Caption := ´Ok´;
Color := clButton;
with Font do
begin
CharSet := fcsDefaultCharSet;
Color := clBlack;
Height := 11;
Name := ´MS Shell Dlg´;
Pitch := fpVariable;
Size := 8;
Style := [];
Weight := 40;
end;
Glyph.LoadFromFile(´Ok.bmp´);
Height := v_heigth;
Layout := blGlyphLeft;
Left := v_left;
Name := ´btnOk´;
Top := 160;
Width := 25;
TabOrder := 2;
end;
///////////////////////////////////
e para criar o evento Onclose;;

Crie uma função assim :

por exemplo :

procedure P_FormClose(sender : TObject; var Action: TCloseAction);
begin
//comandos
end;

e na hora que vc cria o form vc coloca assim :

Form1.OnClose := P_FormClose;

sem mais

Cabelo


GOSTEI 0
POSTAR