Ver la Versión Completa : Crear Objetos en tiempo de ejecucion
mmtaffarel
15-10-2004, 03:24:16
Hola amigos me gustaria saber como puedo hacer para crear en tiempo de ejecucion un formulario, agregarle un groupbox y a su vez dentro de este varios edits??? todo en tiempo de ejecucion...
O por ahi alguien conoce algun manual o tutorial como para incursionar en esto...
Espero ser claro con la consulta, cualquier cosa por favor diganme asi la redacto de otra manera.....
Desde ya muchas gracias.. Salu2
Neftali [Germán.Estévez]
15-10-2004, 09:50:25
...como puedo hacer para crear en tiempo de ejecucion un formulario, agregarle un groupbox y a su vez dentro de este varios edits??? todo en tiempo de ejecucion...
Bueno el sistema es sencillo y parecido para todos los controles; Aquí tienes un ejemplo, puedes además modificar todaslas propiedades inicialmente que te interesen.
var
F:TForm;
gb:TGroupBox;
lbl1:TLAbel;
edt1:TEdit;
begin
// Form
F := TForm.Create(Application);
F.Name := 'RunTimeForm1';
F.Position := poDesktopCenter;
F.Width := 600;
F.Height := 400;
F.Show;
// Group Box
gb := TGroupBox.Create(F);
gb.Parent := F;
gb.Name := 'RunTimeGroupBox1';
gb.Top := 10;
gb.Left := 10;
gb.Height := 300;
gb.Width := 300;
// Etiqueta
lbl1 := TLabel.Create(F);
lbl1.Parent := gb; // dentro del GroupBox
lbl1.Name := 'RunTimeLabel1';
lbl1.Top := 40;
lbl1.Left := 40;
lbl1.Width := 100;
lbl1.Caption := 'Etiqueta: ';
// Edit
edt1 := TEdit.CReate(F);
edt1.Parent := gb; // dentro del GroupBox
edt1.Name := 'RunTimeEdit1';
edt1.Top := 40;
edt1.Left := 160;
edt1.Width := 100;
Edt1.Text := 'Escriba aquí...';
Los objetos visuales no dejan de ser meros objetos, es decir tienes que hacer lo mismo que al crear un TstringList, y además, configurar la propiedad Parent y las coordenadas en pantalla.
var e:Tedit;
g:Tgroupbox;
begin
g:= Tgroupbox.create(form1);
g.parent := form1;
g.height := 80;
e:= Tedit.create(form1);
e.parent := g;
e.top := 10 ; // coordenada relativa al Groupbox
// form1 se encargará de destruir el groupbox y el edit cuando se cierre.
end;
Si quieres acceder a ellos en tiempo de ejecución, asignales un nombre único.
Esto es dicho de cabeza, si tiene algun fallito, te toca retocarlo a ti ;)
Saludos
se me adelantó Neftali con un ejemplo más completo :D
Saludos
mmtaffarel
15-10-2004, 15:47:50
Bueno bueno gente excelente las respuestas, me quedo bien claro el tema...
Muchas gracias, lo probare y luego les cuento
salu2
Delar
03-12-2006, 23:16:20
Bueno el sistema es sencillo y parecido para todos los controles; Aquí tienes un ejemplo, puedes además modificar todaslas propiedades inicialmente que te interesen.
Código Delphi [-] (http://www.clubdelphi.com/foros/#)var F:TForm; gb:TGroupBox; lbl1:TLAbel; edt1:TEdit; begin // Form F := TForm.Create(Application); F.Name := 'RunTimeForm1'; F.Position := poDesktopCenter; F.Width := 600; F.Height := 400; F.Show; // Group Box gb := TGroupBox.Create(F); gb.Parent := F; gb.Name := 'RunTimeGroupBox1'; gb.Top := 10; gb.Left := 10; gb.Height := 300; gb.Width := 300; // Etiqueta lbl1 := TLabel.Create(F); lbl1.Parent := gb; // dentro del GroupBox lbl1.Name := 'RunTimeLabel1'; lbl1.Top := 40; lbl1.Left := 40; lbl1.Width := 100; lbl1.Caption := 'Etiqueta: '; // Edit edt1 := TEdit.CReate(F); edt1.Parent := gb; // dentro del GroupBox edt1.Name := 'RunTimeEdit1'; edt1.Top := 40; edt1.Left := 160; edt1.Width := 100; Edt1.Text := 'Escriba aquí...';
Siento revivir un tema tan antiguo, pero me gustaria saber como añadir acciones ahora a los objetos creados. Las acciones no estan declaradas previamente.
Muchas Gracias, Delar
Cuando dices "acciones" supongo que te refieres a eventos.
Debes definir el evento con los mismo parámetros que lleve por defecto, por ejemplo, el evento Onclick de un label viene así:
procedure TFormXXX.label1Click(Sender:TObject);
Puedes definir uno parecido:
procedure TForm1.OnClickEnEjecucion(Sender:TObject);
Después de crear el label, se lo asignas:
label1.Onclick := OnClickEnEjecucion;
Saludos
edgar1575
14-01-2024, 14:56:49
Buenas, veo que se puede crear, pero de ahi como los puedo operar ejemplo creado 5 edit como puedo acceder a su texto, de cada uno, se me ocurre un array de edit... es esto posible...gracias
Casimiro Notevi
14-01-2024, 17:55:25
Bienvenido a clubdelphi, por favor, lee nuestra guía de estilo (https://www.clubdelphi.com/foros/guiaestilo.php), gracias.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.