Crear dinámicamente un componente visual
Artículo por Club Developers · 31 diciembre 2005
3736 vistas
Todos los componentes de Delphi pueden seer creados en ejecución. Para instanciar un componente, es suficiente con llamar al constructor de su clase. Pero para los componentes visuales es imprescindible definir su propiedad Parent.
El constructor de la clase de los componentes (Create) recibe por parámetro el componente propietario. No tenemos que confundir entre propietario y padre. El propietario es el componente que se encarfa de su destrucción cuando él mismo sea destruido. El padre es el componente contenedor.
También podemos crearlo sin hacer referencia a una variable
El constructor de la clase de los componentes (Create) recibe por parámetro el componente propietario. No tenemos que confundir entre propietario y padre. El propietario es el componente que se encarfa de su destrucción cuando él mismo sea destruido. El padre es el componente contenedor.
delphi
Var  MiBoton: TButton; procedure TForm1.Button1Click(Sender: TObject); begin  { El form será el propietario del botón }  MonBouton := TButton.Create(Self);  { pero será dentro de Panel1 donde queremos mostrarlo }  MonBouton.Parent := Panel1;  { ahora definimos las demás propiedades }  MonBouton.Caption := '¡Botón!';  MonBouton.Left := 10; end;
También podemos crearlo sin hacer referencia a una variable
delphi
procedure TForm1.Button1Click(Sender: TObject); begin  With TButton.Create(Self) Do  Begin   Parent := Panel1;   Caption := '¡Botón!';   Left := 10;  End; end;