Bonjour,
La question est dans le sujet.
Je voudrais un test détectant si une StringList a été créée pour y ajouter une chaine de caractère si c'est le cas, ou la créer au préalable si ce n'est pas le cas.
Merci d'avance
Bonjour,
La question est dans le sujet.
Je voudrais un test détectant si une StringList a été créée pour y ajouter une chaine de caractère si c'est le cas, ou la créer au préalable si ce n'est pas le cas.
Merci d'avance
Salut,
Et if Assigned(maList) then ... ça ne marche pas ?
A+
N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi
J'ai trouvé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if Not(MaListe is TStringList) then MaListe := TStringList.Create ; MaListe.add(Chaine);
Pensez à utiliser les tags dans le titre.
Avant de poser une question reportez-vous à la FAQ Delphi
Respectez les règles du forum.
Je vais suivre ton conseil mais qu'est-ce que tu entends par une «Fuite de mémoire» ?
La condition "MaListe is TStringList" permet de déterminer si MaListe est de type TStringList voire un descendant de cette classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if Not(MaListe is TStringList) then MaListe := TStringList.Create ; MaListe.add(Chaine);
Dans le code ci-dessus, tu crées une instance de MaListe si MaListe n'est pas de type TStringList ?
C'est tout de même un petit peu incohérent
Quand je parle de fuite mémoire c'est tout simplement Créer une nouvelle instance de TStringList sans libérer (Free) une instance existante.
Il faut pour éviter cela et palier à la bizarerie de ta condition écrire:
Du coup si un peu plus loin dans ton code survient un MaListe.Free, tu seras assuré avec la condition "not Assigned..." de recréer une nouvelle instance de MaListe dès que tu appelleras de nouveau cette partie de code. Cela évite les erreurs de violation d'accès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if not Assigned(MaListe) then MaListe := TStringList.Create;
Par ailleurs, si dans ton code MaVariable doit être créée qu'une seule et unique fois, il faut mettre en place singleton, qui te garantira l'unicité de l'instance MaListe.
Pensez à utiliser les tags dans le titre.
Avant de poser une question reportez-vous à la FAQ Delphi
Respectez les règles du forum.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager