PDA

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í...';

Lepe
15-10-2004, 10:13:13
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

Lepe
15-10-2004, 10:16:04
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

Lepe
04-12-2006, 02:05:31
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.