Delphi tcustomcontrol/twincontrol
Может кто-нибудь объяснить, пожалуйста, какой элемент управления лучше создавать пользовательские компоненты? В чем разница между twincontrol и tcustomcontrol?
заранее спасибо
1 ответ
Может кто-нибудь объяснить, пожалуйста, какой элемент управления лучше создавать пользовательские компоненты?
Это зависит от того, какой компонент вы делаете, и для чего он нужен.
Это визуально?
Если нет, используйте
TComponent
,если да, нужно ли это
HWND
(фокус ввода, оконные сообщения и т. д.)?Если нет, используйте
TGraphicControl
,Если да, нужно ли самому рисовать самому?
если да, используйте
TCustomControl
,если нет, используйте
TWinControl
,
В чем разница между twincontrol и tcustomcontrol?
TCustomControl
это TWinControl
потомок, который добавляет дополнительную обработку для WM_PAINT
сообщение, поверх чего TWinControl
делает. TCustomControl
выставляет публику Canvas
свойство, которое вы можете нарисовать. Во время покраски это позволяет csCustomPaint
флаг в ControlState
свойство, а затем вызывает виртуальный Paint()
метод, который ваш компонент может переопределить. Так что выгода от TCustomControl
является то, что это делает обычную живопись немного проще в управлении. Ничего более.