Mega Code Archive

 
Categories / Delphi / OOP
 

How to access protected properties

Title: How to access protected properties type TAccessControl = class(TWinControl) public property Color; end; // and put into TForm1.FormCreate() the following code: TAccessControl(MyProgressBar).Color:= clYellow; { This is possible because TwinControl is the immediate ancestor. There is also another trick to give a existing class more functionality without the need of creating a new component, for example: } type // Just a few lines of code and your TLabel // components on the form has more // functionality without writing a new class TLabel = class(stdctrls.TLabel) public procedure SayHello(); end; // ... procedure TLabel.SayHello(); begin ShowMessage( 'I just want to say hello (and not hello world!)'); end; // As you know the Custom version of a class does not // publish all it's properties, so you can do it the same way as with TLabel. type TTheBaseClass = class(UnitName.TTheBaseClass) public property Align; property Color; property YourProp; {etc etc} end; { NOTES: - You can never add new published properties when controls properties are stored in the DFM file (on a form) - You can put modified classes into another unit file so that you can add it AS THE LAST UNIT to the uses clause. I hope you find it usable. }