Objet actif ou pas

Résolu
ntondini Messages postés 4 Date d'inscription lundi 9 février 2004 Statut Membre Dernière intervention 2 septembre 2005 - 26 juil. 2005 à 11:22
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 26 juil. 2005 à 12:57
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

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 2
26 juil. 2005 à 11:51
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
3
yvescollet Messages postés 55 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 22 janvier 2006
26 juil. 2005 à 11:37
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
0
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 2
26 juil. 2005 à 11:40
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
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 juil. 2005 à 12:57
Tu peux quand même faire des tests comme celui-ci:
if Objet is TEdit then ...

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