Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2011
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Question El extraño caso de la etiqueta (TLabel) invisible.

Buena tarde, jóvenes y jóvenas ilustres de Club Delphi...

Les platico el caso. Tengo una forma que contiene un TScrollBox, y que será llenada con TLabel's y TRadioButton's de acuerdo al contenido de un TADOQuery. Tengo éste código en Delphi 6:

Código Delphi [-]
   if RecordCount > 0 then
     begin

       First; 
      sGrp := FieldByName('C54_GRUPO_STR'
).AsString;

       

with TLabel.Create
(scrllboxLlenar) do
       
begin         
Left := 0;         
Top := iVlrRngln;
         AutoSize := False;
         Width := scrllboxLlenar.Width
 - 4;
         Color := StringToColor(
FieldValues['C54_COLOR_FONDO'
]);
         Font.Color := StringToColor(FieldValues['C54_COLOR_FUENTE']);
         Alignment := taCenter;

         Visible := True;
         Caption := sGrp;
       end; 
        while NOT Eof
 do       begin
         if FieldByName(
'C54_GRUPO_STR').AsString <> sGrp 

then         
begin
           iVlrRngln := iVlrRngln + 20;
           sGrp := FieldByName('C54_GRUPO_STR').AsString;           with TLabel.Create(scrllboxLlenar) do           begin             Left := 0;             Top := iVlrRngln;             AutoSize := False;             Width := scrllboxLlenar.Width - 4;             Color := StringToColor(FieldValues['C54_COLOR_FONDO']);             Font.Color := StringToColor(FieldValues['C54_COLOR_FUENTE']);             Alignment := taCenter;
              Visible := True;
             Caption := sGrp;
           end;         end;
           Next;
       end
;     end;

Y aquí es donde viene el "pero" y la raíz del problema. El tal TScrollBox al momento de ser visible en la forma, ¡¡ESTÁ VACÍO!!, o aparenta estarlo. No se ve ninguna de las TLabel's que SUPUESTAMENTE ya fueron creadas y añadidas al TScrollBox a pesar que TODO el código ejecuta perfectamente.

¿Alguna idea, alguna solución que puedan aportarme? Agradeciendo de antemano sus colaboraciones...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco

Última edición por marcoszorrilla fecha: 10-11-2011 a las 22:27:24.
Responder Con Cita
  #2  
Antiguo 10-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Es que estas confundiendo la funcionalidad del parámetro Owner, que indica quíen será el encargado de liberar la memoria ocupada por el componente, con la propiedad Parent, que indica quién contiene al componente.

Por ejemplo:
Código Delphi [-]
  with TLabel.Create(TForm1) do  // TLabel.Create(ScrollBox1), TLabel.Create(nil), etc.
  begin
    Caption:= 'HOLA';
    Color:= clYellow;
  end;
No mostrará el TLabel en Form1, sólo indica que Form1 es el encargado de liberarlo.

Para mostrarlo en un TScrollBox por ejemplo, deberías hacer:
Código Delphi [-]
  with TLabel.Create(TForm1) do
  begin
    Caption:= 'HOLA';
    Color:= clYellow; 
    Parent:= SCrollBox1;  // <- El contenedor es SCrollBox1
    ...
  end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comportamiento extraño de un TLabel con taRightJustify, AutoSize y MaxWidth gluglu Varios 4 20-09-2017 15:33:46
Cronómetro invisible panuweb Varios 10 10-07-2007 23:36:22
Extraño caso con Rave CartoneroWeb Impresión 0 20-10-2005 22:53:45
Locate en IBX caso extraño raul_sal Conexión con bases de datos 1 27-03-2004 18:41:38


La franja horaria es GMT +2. Ahora son las 06:37: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
Copyright 1996-2007 Club Delphi