Delphi/Lazarus: Créer Label lors de l'exécution dynamiquement
Conseil de Stefan Trost | Dernière mise à jour le 18/11/2022 | Créé le 02/05/2022
Avec ce petit exemple de code, je veux vous montrer comment vous pouvez créer et placer un nouveau TLabel dynamiquement au moment de l'exécution de votre programme.
Tout d'abord, jetons un coup d'œil au code, qui peut être utilisé pour Delphi et Lazarus de la même manière:
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;
Avec TLabel.Create(), nous pouvons mettre une nouvelle Label de nulle part. Afin que nous puissions changer ses propriétés, nous utilisons la variable "ANewLabel" dans laquelle nous stockons temporairement une référence à la nouvelle Label, afin que nous puissions ensuite utiliser cette variable pour définir certaines propriétés de la Label.
Name, Parent et Owner de la Label
Surtout, deux choses sont importantes dans le code: Premièrement, chaque contrôle sur la même forme doit avoir un nom unique. Si nous définissons le nom de la nouvelle Label sur "la_new" comme dans notre exemple et que nous aimerions créer une autre Label après cela, nous devons utiliser un autre nom pour cela (par exemple "la_new2").
Deuxièmement, il est très important que nous définissions la propriété "Parent" de la Label. Cela détermine sur quel contrôle la Label est placée et devient visible là-bas. Dans l'exemple, nous plaçons l'étiquette sur "Form1" (le nom de notre forme), mais nous pouvons également utiliser un Panel (TPanel) ou une TabSheet (TTabSheet) ou autre chose. Si nous ne définissons pas la propriété "Parent", notre Label resterait invisiblement cachée et existerait seulement dans la mémoire.
Si nous ne voulons pas prendre soin de libérer la mémoire de la Label, une fois que la Label n'est plus nécessaire, il est également important de définir le "Owner" de la Label. Cependant, cette fois, nous ne le définissons pas par la suite via l'une des propriétés de la Label, mais directement lors de la création de la Label comme un paramètre de .Create() en passant "Form1" ici. En conséquence, la Label est automatiquement libérée lorsque notre formulaire est libérée et nous nous économisons pour appeler manuellement la procédure .Free de la Label.
Positionnement et Caption
En dehors de cela, nous avons mis d'autres des propriétés, telles que "Left" et "Right" pour positionner la Label sur le formulaire (ici à 20 pixels de la bordure gauche et à 10 pixels de la bordure supérieure) ou "Caption" pour afficher un texte sur la Label.
Bien sûr, de cette manière, nous pourrions également définir toutes les autres propriétés imaginables qui sont autrement réglables via l'Object Inspector.
Sur l’Auteur
Vous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil
Sujets Connexes
Script Batch: Arrêter Ordinateur Windows
Tutoriel | 3 Commentaires
PHP: Transférer Formulaire avec des nombreuses Cases à Cocher vers un Script confortablement
Conseil | 2 Commentaires
VirtualBox: Changer la Date et l'Heure
Tutoriel | 10 Commentaires
Lazarus: Détecter le Système d'Exploitation (Compiler Switch)
Tutoriel | 0 Commentaires
Delphi/Lazarus: La touche ALT, SHIFT ou CTRL est-elle enfoncée?
Tutoriel | 0 Commentaires
Lazarus: Charger Fichier en tant que Array d'Octets et Enregistrer Array d'Octets en tant que Fichier
Tutoriel | 0 Commentaires
HTML: Label de Checkbox dans une autre Cellule d'un Tableau
Question | 1 Réponse
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.