OOP Delphi

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