TControl et propriete color

lelahel08 Messages postés 36 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 24 octobre 2005 - 19 oct. 2005 à 10:59
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 - 22 oct. 2005 à 13:11
Bonjour a tous !

Voilà je voudrais changer la couluer de différents composant et plutot que de créé différentes fonction avec différents cast je voudrais faire quelque chose comme ceci :

TControl(Sender).Color := clRed;

Mais bien que la propriété Color de TControl existe il n'y accède pas .... elle est protected mais je devrais l'atteindre pourtant ....

Merci merci !!

PS : Je suis en Delphi 5

3 réponses

Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
19 oct. 2005 à 13:59
Si tu utilise des composants, ne passe pas par TControl, mais change directement la propriété Color.
0
lelahel08 Messages postés 36 Date d'inscription dimanche 10 août 2003 Statut Membre Dernière intervention 24 octobre 2005
19 oct. 2005 à 14:09
Impossible ca !!!



Je ne sais pas quel est le type du composant et le but de ma question
est justement d'éviter 36 methode pour gérer 36 type de composant, et
de tout centraliser.



TComponent(Sender).Color => n'existe pas

Sender.Color => non plus



et faire des test du style



TEdit(Sender).Color

TMaskEdit(Sender).Color



c'est lourd ! actuellemnt si je rentre dans un TEdit je lance :



procedure TfR.ChgColorEnter(Sender: TObject);

begin

if TPageControl((TEdit(Sender)).Parent.Parent).Name = 'tsAgence' then

TEdit(Sender).Color := ColorSaisiPln

end;



quand je rentre dans un maskedit je lance



procedure TfR.ChgColorEnterMask(Sender: TObject);


begin


if TPageControl((TMaskEdit(Sender)).Parent.Parent).Name = 'tsAgence' then


TMaskEdit(Sender).Color := ColorSaisiPln


end;



... lourd ....



le but final :



procedure TfR.ChgColorEnter(Sender: TObject);


begin


if TPageControl(Sender.Parent.Parent).Name = 'tsAgence' then


Sender.Color := ColorSaisiPln


end;
0
Niki2001 Messages postés 85 Date d'inscription samedi 6 novembre 2004 Statut Membre Dernière intervention 17 décembre 2005 1
22 oct. 2005 à 13:11
Cé que tu demandes est, à mon sens, impossible. Selon les compsants, la propriété Color n'est pas implémentée, donc inutilisable. La seule solution est donc, à priori, de faire 36 tests, comme tu dis.
0
Rejoignez-nous