Delphi tcustomcontrol/twincontrol

Может кто-нибудь объяснить, пожалуйста, какой элемент управления лучше создавать пользовательские компоненты? В чем разница между twincontrol и tcustomcontrol?

заранее спасибо

1 ответ

Решение

Может кто-нибудь объяснить, пожалуйста, какой элемент управления лучше создавать пользовательские компоненты?

Это зависит от того, какой компонент вы делаете, и для чего он нужен.

Это визуально?

  • Если нет, используйте TComponent,

  • если да, нужно ли это HWND (фокус ввода, оконные сообщения и т. д.)?

    • Если нет, используйте TGraphicControl,

    • Если да, нужно ли самому рисовать самому?

      • если да, используйте TCustomControl,

      • если нет, используйте TWinControl,

В чем разница между twincontrol и tcustomcontrol?

TCustomControl это TWinControl потомок, который добавляет дополнительную обработку для WM_PAINT сообщение, поверх чего TWinControl делает. TCustomControl выставляет публику Canvas свойство, которое вы можете нарисовать. Во время покраски это позволяет csCustomPaint флаг в ControlState свойство, а затем вызывает виртуальный Paint() метод, который ваш компонент может переопределить. Так что выгода от TCustomControl является то, что это делает обычную живопись немного проще в управлении. Ничего более.

Другие вопросы по тегам