33 Votos

Delphi/Lazarus: Crear Label en tiempo de ejecución dinámicamente

Consejo de Stefan Trost | Última actualización el 18/11/2022 | Creado el 02/05/2022

Con este pequeño ejemplo de código, quiero mostrarle cómo puede crear y colocar un nuevo TLabel dinámicamente en el tiempo de ejecución de su programa.

Primero veamos el código que se puede usar para Delphi y Lazarus de la misma manera:

var
  ANewLabel: TLabel;
begin
  ANewLabel         := TLabel.Create(Form1);
  ANewLabel.Name    := 'la_new';
  ANewLabel.Caption := 'New Label';
  ANewLabel.Left    := 20;
  ANewLabel.Top     := 10;
  ANewLabel.Visible := true;
  ANewLabel.Parent  := Form1;
end;

Con TLabel.Create(), podemos poner una nueva Label de la nada. Para que podamos cambiar sus propiedades, utilizamos la variable "ANewLabel" en la que almacenamos temporalmente una referencia a la nueva Label, para que luego podamos usar esta variable para establecer algunas propiedades de la Label.

Name, Parent y Owner de la Label

Sobre todo, dos cosas son importantes en el código: Primero, cada control en la misma forma tiene que tener un nombre único. Si establecemos el nombre de la nueva Label en "la_new" como en nuestro ejemplo y nos gustaría crear otra Label después de eso, tenemos que usar otro nombre para esto (por ejemplo "la_new2").

En segundo lugar, es muy importante que establezcamos la propiedad "Parent" de la Label. Esto determina en qué control se coloca la Label y se vuelve visible allí. En el ejemplo, colocamos la etiqueta en "Form1" (el nombre de nuestro formulario), pero también podemos usar un Panel (TPanel) o una TabSheet (TTabSheet) o cualquier otra cosa. Si no estableciéramos la propiedad "Parent", nuestra Label permanecería invisiblemente oculta y solo existiría en la memoria.

Si no queremos cuidar liberar la memoria de la Label después de que la Label ya no es necesaria, es igualmente importante establecer el "Owner" de la Label. Sin embargo, esta vez, no establecemos esto posteriormente a través de una de las propiedades de la Label, sino directamente al crear la Label como un parámetro de Create() pasando "Form1" aquí. Como resultado, la Label se lanza automáticamente cuando se lanza nuestro formulario y nos ahorramos para llamar al procedimiento .Free de la Label manualmente.

Posicionamiento y Caption

Aparte de eso, establecemos algunas otras de las propiedades, como "Left" y "Right" para colocar la Label en el formulario (aquí a 20 píxeles del borde izquierdo y a 10 píxeles del borde superior) o "Caption" para mostrar un texto en la Label.

Por supuesto, de esta manera también podríamos establecer todas otras propiedades concebibles que de otro modo sean ajustables a través del Object Inspector.

ResponderPositivoNegativo

Sobre el Autor

AvatarPuede encontrar software de Stefan Trost en la pagina es.sttmedia.com. ¿Necesita un software individual según sus propios requisitos? Escribenos: es.sttmedia.com/contacto
Ver Perfil

 

Temas Relacionados

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.