Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Crear Objetos en tiempo de ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=15237)

mmtaffarel 15-10-2004 03:24:16

Crear Objetos en tiempo de ejecucion
 
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

Cita:

Empezado por mmtaffarel
...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.

Código Delphi [-]
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.


Código Delphi [-]
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

Cita:

Empezado por Neftali
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 [-]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í:
Código Delphi [-]
procedure TFormXXX.label1Click(Sender:TObject);

Puedes definir uno parecido:
Código Delphi [-]
procedure TForm1.OnClickEnEjecucion(Sender:TObject);

Después de crear el label, se lo asignas:
Código Delphi [-]
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, gracias.


La franja horaria es GMT +2. Ahora son las 14:52:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi