I have two questions:
How can I extend the painting functionality of a
TWinControl like the
I cannot find the
Paint method in
TWinControl to override. Specifically, I want to extend the
TDBEdit class. The
TDBEdit class implements the
WMPaint method that is private.
In answer to your first question:
To extend the capabilities of
TGraphicControl, you need to override the method and add your own capabilities. That’s highly object-oriented.
Regarding your second question:
You’re right, there’s no
Paint method for
TDBEdit, but there is
PaintWindow, and that’s what you’ll have to override.
I suggest you look in
Controls.PAS to see how
TCustomControl deals with overriding
PaintWindow and creates a virtual
Paint method. It’s actually quite ingenious. My approach would be to make a descendant of
TCustomMaskEdit and include the capabilities you want from
TDBEdit. Then, instead of putting the
WMPaint procedure in the private section, move it to the protected section. From there, you can override
TWinControl, then propagate your own
Paint procedure and canvas. I haven’t done this myself, but after studying the VCL source code, this is the place I’d start.