Objet actif ou pas

Résolu
Signaler
Messages postés
4
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
2 septembre 2005
-
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
-
Salut,



Dans une procédure, j'aimerais parcourir tous mes objets se trouvant
dans ma Form principale et de pouvoir définir pour chaqu'un leur
propriété Enabled à vrai ou à faux.



Quelqu'un pourrait-il me mettre sur la voie.



Merci d'avance.



NN

4 réponses

Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
Désolé Yves, nos messages se sont croisés.

Ta méthode fonctionne parfaitement (tout comme la mienne) mais présente
l'inconvénient de ne pas fonctionner sur toutes les propriétés.



Imagine que tu veuille faire la même chose avec la propriété ReadOnly.

Avec ton code, cela est impossible, mais pas avec le mien.

D'ou l'avantage des méthodes RTTI (Run Time Type Information)



Cela dit, je ne remet pas en cause ton code qui répond bien à la question de ntondini.



@ ++

Florent

Si tu ne te plantes pas ......
tu ne poussera jamais
Messages postés
55
Date d'inscription
mardi 26 août 2003
Statut
Membre
Dernière intervention
22 janvier 2006

pour parcourir tous les objets (composants) et les mettre tous à enabled := False





procedure TForm1.FormCreate(Sender: TObject);

var

NbObjets : integer;

begin

for NbObjets := 0 to Self.ComponentCount - 1 do

begin

TControl(Self.Components[NbObjets]).Enabled := False;

end;

end;


bonne continuation


Yves
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
En utilisant les procedures RTTI, tu peux savoir si un objet possède la propriété Enabled.

Pour parcourir les composants, il faut faire une boucle.



<hr size= "2" width="100%"> uses

TypInfo; // Méthodes RTTI



procedure TFrmPrinc.MaProc;

var

i: Integer;

begin

for i: =0 to ComponentCount -1 do

if IsPublishedProp(Components[i], 'Enabled') then

SetOrdProp(Components[i],'Enabled',Ord(False)); // Ou True

end;

<hr size="2" width="100%">Et voila !! ;-)



@ ++

Florent


Si tu ne te plantes pas ......
tu ne poussera jamais
Messages postés
1106
Date d'inscription
samedi 8 novembre 2003
Statut
Membre
Dernière intervention
3 septembre 2006
22
Tu peux quand même faire des tests comme celui-ci:
if Objet is TEdit then ...

===========
ViewVite XP : HTML