Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Creación de componentes en tiempo de ejecución (https://www.clubdelphi.com/foros/showthread.php?t=17968)

jymy788 27-01-2005 15:36:14

Creación de componentes en tiempo de ejecución
 
Buenas a todos.

Vamos a ver, espero que me puedan ayudar. Mi problema es el siguiente:

Me creo en tiempo de ejecución unos groupboxs y después de haberlos creados (que lo hace bien) intento crear dentro de cada uno de ellos un determinado número de tFloatEdits (dependen de un length de un array).

El problema lo tengo al crear los floatEdits porque no puedo ponerle como parent el groupbox correspondiente porque no se guardar su nombre. Os adjunto el código para que me puedan echar un cable ok?

////////////////////////////////////////////////////////////////////////////////
Código Delphi [-]
procedure TFormVerServiciosMensual.CreateFloatEdit1a16(aryServicios: TDArrayString);
 var
   myAryServicios, myParent, listGB1a16Name: TDArrayString;
   i, j, k, topX, leftX, topXEdit : integer;
   parentAux: string;
   WidgetName  : TComponent;
 begin
   // destruimos todos los objetos del panel P1a16
   BfFormDestroy(Self, P1a16); 
   myAryServicios := aryServicios;
   leftX := 1;
   for i:=1 to 16 do
   begin
     WidgetName := TGroupBox.Create(Self);
     with TGroupBox(WidgetName) do
     begin
       Name      := 'GB'+ intToStr(i);
       Caption   := '    '+inttoStr(i)+'    ';
       Parent    := P1a16;  //panel sobre el que se crean los groupboxes
       Left      := leftX;
       Top       := 1;
       Width     := 53;
       Height    := 192;
     end;
     leftX := leftX + 53;
     for j:=0 to length(myAryServicios)-1 do
     begin
       // destruimos todos los objetos hijos del Frame de parametros
       //BfFormDestroy(Self, TGroupBox(WidgetName));
       with TFloatEdit.Create(Self) do
       begin
         Name      := 'FloatEdit'+ intToStr(i)+intToStr(j);
         Hint      := myAryServicios[i];
         Parent    := TGroupBox(WidgetName);
         Left      := 6;
         Top       := topXEdit;
         Font.Size := 8;
         Width     := Width + 4;
       end;
       // next
       topXEdit := topXEdit + 35;
     end;
   end;
 end;
////////////////////////////////////////////////////////////////////////////////

Gracias de antemano a todo el foro.

Pd.- Espero haberme explicado bien.

Neftali [Germán.Estévez] 27-01-2005 16:56:39

Cita:

Empezado por jymy788
El problema lo tengo al crear los floatEdits porque no puedo ponerle como parent el groupbox correspondiente porque no se guardar su nombre.

¿Cuel es el problema?
¿Cual es el error?
Le he echado un vistazo al código y crea los controles bien.

jymy788 27-01-2005 17:22:20

a mi me da un access violation. Si comento el bucle de los floatEdits me crea los gruopboxes sin problemas pero cuando dejo ese bucle, casca y me tiene de los putos nervios.

Sorry, estoy gilipollas, entre eso y el cvs que utilizamos en la oficina.... vamos que me estaba machacando los cambios que hacía sin que me enterara. Si te fijas en el código, en la creación de Edits cuando posiciona dentro del array hace un (i) cuando debería ser un (j).

Eso lo he cambiado un huevo de veces pero me machaca los cambios.

Gracias, por lo menos me hiciste darme cuenta del culpable, jejeje.


La franja horaria es GMT +2. Ahora son las 00:56:23.

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