Effacer plusieurs Label crées dynamiquement

[Résolu]
Signaler
Messages postés
104
Date d'inscription
dimanche 29 octobre 2000
Statut
Membre
Dernière intervention
12 décembre 2005
-
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
-
Bonjour,
voila je crée dynamiquement plusieur TLabel, pour les diferancier des autres labels du programme je leu attribut un Tag:=1 ...
Cela devrait normalement me permettre au moment venu d'effacer tous ces labels j'ai donc ce code pour les effacer :

for i:=0 to ComponentCount-1 do
if Components[i].Tag=1 then Components[i].Free;

Le probleme c'est qu'a chaque fois j'ai une erreur dy type : List Index of bounds(20)
et apres ca la boucle s'arrete ce qui fait qu'il me reste encore un tas de label.

Voial j'espere avoir été clair

Alors si uelqu'un a une solution a mon probleme... merci :D

++

5 réponses

Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Salut,

Essaye comme ceci :



for i := ComponentCount-1 downto 0 do

if Components[i].Tag = 1 then

Components[i].Free;



Bonne prog'
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Heu... l'explication :



Si ta boucle commence par l'index 0, la suppression du composant fausse la donne : l'étendue de la boucle reste identique, mais le nombre de composants a diminué. Il y aura donc forcément dépassement d'index.



Bonne prog'
Messages postés
104
Date d'inscription
dimanche 29 octobre 2000
Statut
Membre
Dernière intervention
12 décembre 2005

ah ben c'est niquel puis j'avais pas d utout pensé a ca!

merciiii t'assure chaussure !

++
Messages postés
104
Date d'inscription
dimanche 29 octobre 2000
Statut
Membre
Dernière intervention
12 décembre 2005

Hm euh... en fait j'ai encore un ptit problème,
maintenant quand j'éxécute cette procédure j'ai pratiquement toujours des Abstract Error
ou Access violation ...

T'as une idée du probleme??

++
Messages postés
1725
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
11 avril 2021
8
Désolé, je ne vois pas.

A priori, il ne me semble pas que ça puisse venir de ce bout de code...



Bonne prog'