Tip: removing a property from the Object Inspector
The wonders you find just by browsing Delphi’s included source code! Basically, the issue I blogged about a couple of days ago can be fixed to an extent by simply calling the UnlistPublishedProperty procedure of DesignIntf. While the hidden property will still be surfaced at run-time, you may still find it a ‘good enough’ solution nonetheless. Example:
unit CCR.RichEdit.Reg;
interface
procedure Register;
implementation
uses Classes, DesignIntf, CCR.RichEdit;
procedure Register;
begin
RegisterComponents('CCR RichEdit', [TRichEditEx]);
UnlistPublishedProperty(TRichEditExRuler, 'Margins');
end;
end.
So, what this code does (apart from registering the TRichEditEx class) is to remove the Margins property from the object inspector for any instance of TRichEditExRuler or a class descending from TRichEditExRuler. Note that when you use DesignIntf, designide must be added to the DPR’s requires clause — do this by right clicking on the DPR in the project manager and selecting View Source, from which you can make the change manually:
package dclCCRRichEdit; //a load of untouched compiler settings snipped... requires designide, //added rtl, //etc., as before