Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con creacion de obj en ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=17782)

mbcito 21-01-2005 00:21:18

Problemas con creacion de obj en ejecucion
 
Hola amigos!

Tengo un problema, estoy creando objetos en tiempo de ejecucion y para los tipos de objetos TdateTimepicker y tlabel tengo el problema que no me los muestra en el form, con los tedit no tengo problemas.
Alguien sabe que puede estar sucediendo?

Les muestro un bloque de codigo.

Estoy cargando en un ciclo los campos desde un datamodule.
Las variables estan en un vector vDBT[].

Código Delphi [-]
      begin
       vDBT[i]:= TDateTimePicker.Create(self);
       with vDBT[i] do
        begin
         Parent:=self;   
         Name := 'TT'+dm01.ds03.DataSet.Fields[i-1].FieldName;
         Hint := 'TD'+dm01.ds03.DataSet.Fields[i-1].FieldName;
         Left := pleft;
         top := ptop;
         Width := 210;
         DateFormat := dfLong;
         Kind := dtkDate;
         Height  := 21;
         Enabled := true;
         visible :=  true;
         if Left+vDBT[i].Width>fAddProdMan.Left-5 then
          Width := fAddProdMan.Left - Left-5;
         end;
        end;
Desde ya muchas gracias, desde BsAs los saluda

Mariano (puro autodidacta)

Al González 21-01-2005 02:45:49

Si no genera un mensaje de error...
 
¡Hola a todos!

Si no genera un mensaje de error, entonces quizá dichos objetos están quedando detrás de otros (que lo "tapan"), o bien, fuera de las coordenadas visibles del contenedor padre ("Self").

Saludos.

Al González.
No soy un hombre convencional, pero entiendo de convencionalismos.

salvica 21-01-2005 12:30:50

Hola

Yo, particuarmente, sacaría los resultados a un fichero .INI para comprobar que los parámetros "top", "left" y "width" estan dentro de lo que deseas, por si, como dice Al González, los estás situando fuera de los límites del form
Código Delphi [-]
 begin
  vDBT[i]:= TDateTimePicker.Create(self);
  with vDBT[i] do
  begin
    Parent:=self;   
    Name := 'TT'+dm01.ds03.DataSet.Fields[i-1].FieldName;
    Hint := 'TD'+dm01.ds03.DataSet.Fields[i-1].FieldName;
    Left := pleft;
    top := ptop;
    Width := 210;
    DateFormat := dfLong;
    Kind := dtkDate;
    Height  := 21;
    Enabled := true;
    visible :=  true;
    Left+vDBT[i].Width>fAddProdMan.Left-5 then
          Width := fAddProdMan.Left - Left-5;
  { desde aquí }
    IniFile := TIniFile( 'objetos.ini' );
    with IniFile do begin
         WriteString( Name, 'NAME',  Name  );
         WriteInteger(Name, 'LEFT',  Left  );
         WriteInteger(Name, 'TOP',   Top   );
         WriteInteger(Name, 'WIDTH', Width );
         Free;
    end; 
  { hasta aquí }
  end;
end;
Así tendrías una cabecera de sección por objeto, con los valores correspondientes a cada uno.

Saludos
Salvica

mbcito 21-01-2005 16:53:35

Ok
 
Gracias muchachos lo voy a probar hoy a la noche (en mi trabajo no puedo ya que no tengo Delphi instalado).

Saludos

Neftali [Germán.Estévez] 21-01-2005 18:18:12

Intentalo asignandole a la propiedad ParentWindow de los controles el Form que los contiene.


La franja horaria es GMT +2. Ahora son las 18:18:12.

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