Mettre a enable les composant d'un panel

Résolu
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 6 mars 2008 à 11:12
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008 - 6 mars 2008 à 13:38
Bonjour a tous!

J'ai un petit problème, donc je m'en remet a vous pour savoir si il existe une solution.

J'ai un Panel avec un certain nombre de composant standart Edit, ComboBox, RadioGroup, etc... dessus.

Je souhaiterais pouvoir rendre actif / inactif (Enabled) tous ces composants.

Pour le moment, j'utilise Panel.Enabled := true //(ou false)
Ca marche puisque je n'ai plus accès au composant du Panel. Le problème c'est que l'aspect des composant du Panel reste "normal", c'est a dire comme si ils étaient actif.

Y'a t'il une solution pour rendre tous les composants inactifs autrement que de changer leurs état 1 par 1 ?
(Edit1.Enabled:=false, Edit2.Enabled:=false...)

Vous me direz ce n'est pas un problème fondamentale, mais j'aimerais quand même bien savoir si il y a moyen de le faire!
Merci d'avance

4 réponses

Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 mars 2008 à 11:46
Sinon une autre solution ,un peu differente des logiciels communs , consiste a retrecir/agrandir le panel quand il est inactif/actif
dans une petite animation, donc tu coche 1 checkbox pr rendre par exemple ton panel inactif , tu le met a enable :=false et tu le retrecit ...

Pour ta solution regarde (peut etre ) je ne sais pas , au niveau du parent de l'object ( peut etre une co*** je ne sais pas verifier )
0
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
6 mars 2008 à 12:04
Merci de ta reponse...

Le problème c'est que dans mon cas, les élements du panel doivent quand même être visible (ils contiennent des informations) même quand ils ne sont pas actifs. Je ne peut donc pas les cacher.

J'ai rechercher sur les composants des proprités equivalente à  ParentFont ou ParentColor mais rien n'existe pour enabled malheureusement.

Sinon j'ai aussi tenté une solution avec une boucle for sur les composants du Panel (avec Panel.ComponentCount, Panel.Components[i] et truc du genre) mais pour un Panel la propriété ComponentCount vaut toujours 0 donc ça ne marche pas...

Je continu donc de chercher!
0
Sat83 Messages postés 166 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 13 octobre 2008
6 mars 2008 à 13:38
Effectivement, ça fonctionne en utilisants Controls plutot que Components.

Bon, ça oblige quand même à parcourir tous les composants 1 par 1, c'est pas l'idéal mais je vais m'en contenté pour le moment vu qu'apparement il n'existe pas de solution simple a mettre en oeuvre pour effectuer la même chose.

Merci a vous deux pour votre aide!
0
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
6 mars 2008 à 13:07
ta 2eme solution est la bonne, il faut simplement utiliser Panel1.ControlCount et Panel1.Controls[i] au lieu de components
-1
Rejoignez-nous