Mega Code Archive

 
Categories / Delphi / VCL
 

Change a property in all components of a form

procedure TForm1.SetProperties(ClassName, SomeProperty: string; Value: Integer); 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 = 'AllComponents')) then begin PropInfo := GetPropInfo(Component.ClassInfo, SomeProperty); if Assigned(PropInfo) then SetOrdProp(Component, PropInfo, Integer(Value)); end; end; end; // Examples, Beispiele: procedure TForm1.Button1Click(Sender: TObject); begin // Make all components readonly SetProperties('AllComponents', 'readonly', 1); // Make all components of Class TEdit invisible SetProperties('TEdit', 'visible', 0); // Set the Height Property of all TLabels SetProperties('TLabel', 'Height', 30); // Set ShowHint to false for all components SetProperties('AllComponents', 'ShowHint', 0); // Disable all TMemo Components SetProperties('TMemo', 'Enabled', 0); // Set Autosize to true for all TLabels SetProperties('TLabel', 'Autosize', 1); end;