Changer une propriété dans tous les composants

Uses TypInfo;

procedure TForm1.SetProperties(ClassName, SomeProperty: String; Value : boolean);
var
i : integer;
PropInfo : PPropInfo;
Component : TComponent;
begin
for i := 0 to ComponentCount - 1 do
begin
Component := Components[i];
if (Component is TControl) and ((Component.ClassName = ClassName) or
(ClassName ='all')) then
begin
PropInfo := GetPropInfo(Component.ClassInfo, SomeProperty);
if Assigned(PropInfo) and
(PropInfo^.PropType^.Kind = tkEnumeration ) then
SetOrdProp(Component, PropInfo, integer(Value));
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Rendre tous les composants à readOnly
SetProperties('all','readonly',true);
// rendre tous les composants Tedit invisible
SetProperties('TEdit','visible',false);
// Fixer ShowHint à false dans tous les composants
SetProperties('all','ShowHint',false);
// Rendre enabled à false pour tous les memo
SetProperties('TMemo','Enabled',false);
// Mettre Autosize à true pour tous les Label
SetProperties('TLabel','Autosize',true);
end;
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour06/02/2002
VisualisationVu 1093 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Autre categorie
Auteur de l'article
Communauté Delphi Communauté Delphi
connecté le 02/11/2011
0 articles dans la section
Contacter l'auteur