Foros Club Delphi

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

tocomi 10-05-2016 21:55:02

Crear Tedit en tiempo de ejecucion
 
Buenas Tardes, tengo una consulta, necesito crear varios tedit y tlabel (supongo que la forma sera parecida) en tiempo de ejecucion, la cantidad esta determinada por los registros en una base de datos que es definida por el usuario, ya revise el foro por todos lados y busque en google (que curiosamente me mostro links al foro) y tengo la siguiente rutina

Código Delphi [-]
With Query do
    Begin
    Active:=False;
    Sql.clear;
    Sql.Add( consulta para saber cuantos edit se necesitan);
    Active:=true // funciona sin problemas, indica los registros que de se necesitan y los datos)
    While not eof do
      with TLabel.Create(Form) do
         begin  // recorre el while sin problemas y no da ningun mensaje de error
         Name:='Lbl_'+fieldbyname('nro').asstring;
         Caption:=fieldbyname('titulo').asstring;
         Left:= 8;
         Top:= 25*recordcount;  //Alineacion horizontal
         Width:= 200;
      end;
      next;
   end;
   Active:=False;
end;
La pregunta es que es lo que estoy haciendo mal?????

ecfisa 10-05-2016 23:53:27

Hola.

A simple vista no asignas un Parent al componente TLabel (creado en tiempo de ejecución) y por tanto no se visualizaría. Otro detalle es que, para que no se solapen los Labels, en el incremento de Top deberías usar la propiedad RecNo en lugar de RecordCount.

Saludos :)

roman 11-05-2016 16:31:01

Cita:

Empezado por tocomi (Mensaje 505106)
La pregunta es que es lo que estoy haciendo mal?????

Pues bueno, nunca explicaste cuál era la falla, aunque ya ecfisa detectó algo. Yo lo que te diría es que no es nada común hacer algo como lo que estás haciendo: construir tantos componentes como registros haya en una base de datos. Si quieres presentar un conjunto de componentes disímiles por cada registro de una consulta, Delphi provee el componente TDBCtrlGrid en el que insretas los componentes que desees por cada registro y el control se encarga de replicarlos de acuerdo a la cantidad de registros.

LineComment Saludos


La franja horaria es GMT +2. Ahora son las 20:08:32.

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