Réutilisation d'objet s TLabel dans une fonction

Résolu
draft61 Messages postés 7 Date d'inscription samedi 16 juillet 2005 Statut Membre Dernière intervention 28 juillet 2005 - 18 juil. 2005 à 19:51
draft61 Messages postés 7 Date d'inscription samedi 16 juillet 2005 Statut Membre Dernière intervention 28 juillet 2005 - 19 juil. 2005 à 09:57
Hello!


Je réalise un programme en Delphi, permettant de faire un ping d'une plage d'adresses IP.
J'ai 254 Labels représentant chaque adresse. Je souhaite que le Label soit en vert si l'adresse est joignable, et en rouge dans l'autre cas.


Actuellement je fais un contrôle de chaque Label et j'attribue la couleur correspondante. Mais vu le nombre de Label, j'aimerais faire une fonction permettant de réutiliser le code.
Pour ce faire, j'utilise une boucle FOR de 1 à 254. Je pense générer le nom du label en utilisant l'index du FOR. Les noms des Labels sont: L1, L2, L3...
J'utiliserais une varaible en la chargeant comme ceci:
NomLabel :='L' + inttostr( i ); i étant l'index du FOR.
Il faudrait alors utiliser le NomLabel comme ceci:
NomLabel.Font.color:=clRed;
Le problème est qu'il faudrait que NomLabel soit de type TLabel. Et quand je le déclare en TLabel, il essaye d'en recréer un au lieu de réutiliser celui existant.


Quelqu'un à une solution ou la bonne méthode??


Merci!

3 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
19 juil. 2005 à 02:19
En gros, j'y reviens, j'ai un peu de temps à tuer, lol, ça pourrait donner un truc comme ça :



procedure TForm1.ColorizeLabel;

const NbrLabels: Integer = 254; // nombre de Labels

var

i: Integer;

ALabel: TLabel;

begin

for i := 1 to NbrLabels do

begin

ALabel := TLabel(FindComponent('L' + IntToStr(i)));

if AdresseJoignable(ALabel) then // ta fonction qui renvoie True ou False

ALabel.Font.Color := clGreen

else

ALabel.Font.Color := clRed;

end;

end;



Bonne prog'



japee
3
WinLin Messages postés 86 Date d'inscription dimanche 13 février 2005 Statut Membre Dernière intervention 3 septembre 2007
18 juil. 2005 à 20:09
pour moi je pense que tu devrais regarder dans le transptypage
et crée un objet a la volée enfin je pense
0
draft61 Messages postés 7 Date d'inscription samedi 16 juillet 2005 Statut Membre Dernière intervention 28 juillet 2005
19 juil. 2005 à 09:57
Génial Japee!

Je ne connaissais pas du tout cette méthode.
On peut dire que ça va changer mon code!

Merci du coup de pouce!

A+
0
Rejoignez-nous