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 ....
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
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.