Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   insertar dinamicamente (https://www.clubdelphi.com/foros/showthread.php?t=19465)

YolandaM 15-03-2005 15:49:21

insertar dinamicamente
 
;) Hola que tal. Una ayudita porfa.

Necesito crear dinamicamente en una form x paneles con sus labels y sus edits.
Ejemplo.- el usuario inserta un numero de 1 a 10 y automaticamente tengo que crear los paneles con sus componentes dentro.

Gracias anticipadas.

Nbull 15-03-2005 16:29:05

Hola Yolanda, a lo mejor es una chapuza lo que te voy a decir, pero, yo jugaría con las propiedades de tamaño .Width .Height .Top y .Left para distribuirlos en los sitios que quieras en el Form con el tamaño que quieras, y luego los pondria .visible=True.

Ya te digo que lo más seguro que sea una chapuza pero a lo mejor te sirve, de todas maneras si esto no esta bien hecho seguro que alguno de los maquinas que andan por los foros(Son muchos);) me corregirán y te ayudarán.


Un saludo y espero haberte ayudado.

Neftali [Germán.Estévez] 15-03-2005 17:14:39

Cita:

Empezado por YolandaM
Necesito crear dinamicamente en una form x paneles con sus labels y sus edits.

Programa un botón conel siguiente código:

Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
   i, cont:Integer;
   p:TPanel;
   edt:TEdit;
 begin
 
   cont := StrToInt(Edit1.Text);
 
   for i := 0 to (cont-1) do begin
     p := TPanel.Create(Self);
     p.Left := (20 * i);
     p.Top := 0;
     p.Width:= 20;
     p.Height := 20;
     p.ParentWindow := Self.Handle;
     p.Name := 'panel' + IntToStr(i);
 
     // Un Edit;
     edt := TEdit.Create(Self);
     edt.Left := 5;
     edt.Top := 5;
     edt.Width:= 10;
     edt.ParentWindow := p.Handle;
     edt.Name := 'pEdit' + IntToStr(i);
   end;
 end;

Necesitas un Edit (Edit1) que te indica cuantos debes crear.

Un consejo: Si los "BLOQUES" que debes crear son complejos, tal vez te interese crear un Frame en diseño, añadirle todo lo que necesitas y luego en ejecución crear elementos del tipo de ese Frame.

YolandaM 15-03-2005 17:40:49

:D Muchas gracias a los dos.
La primera idea de crearlos en la form y luego visible=true; ya la pense, pero no me gusto un poco chapuza tambien codigo inservible.

Neftali: Me puedes indicar esto de los frames como hacerlos. Y luego claro añadir objetos a ese frame.?


Muchas gracias.
:confused:

Neftali [Germán.Estévez] 16-03-2005 10:21:41

A partir de la versión 5 de Delphi (creo recordar) aparecen los frames. Un Frame es una especie de formulario (no exactamente) que una vez creado puede añadirse a la paleta de componentes y "soltarlo" en formularios como si fuera un único componente (o crearlo en runtime). Es decir que si el "bloque de controles" que vas a crear es complejo, te sale a cuenta hacer un Frame en diseño, colocarlo en la paleta de componentes y luego crearlo en ejecución de forma similar a como hemos hecho con el panel anterior.

File/New/Frame
Lo guardas en un fichero
Y posteriormente añades ese PAS y lo creas en run-time.

Haz las pruebas y si tienes algun problema ya dirás...


La franja horaria es GMT +2. Ahora son las 21:21:29.

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