Как сделать TScrollbox из TCustomControl? - PullRequest
2 голосов
/ 09 марта 2012

Я создал компонент, который имеет переопределение краски на холсте, и я хотел бы установить ограничение на минимальную ширину и высоту. Полоса прокрутки должна появиться сбоку, когда ширина или высота меньше предела, как у прокрутки, и ее также можно прокручивать.

Я выбираю TCustomControl, потому что рисую и меньше мерцаю при двойной буферизации.

Любая идея или лучшее решение?

1 Ответ

3 голосов
/ 09 марта 2012

TScrollBox и TCustomControl оба спускаются с TWinControl. TScrollBox и TScrollingWinControl добавляют полосы прокрутки, тогда как TCustomControl добавляет холст. Чтобы получить то, что вы хотите, вы можете добавить холст к TScrollingWinControl или добавить полосы прокрутки к TCustomControl.

Сравните определения двух классов (в Forms.pas и Controls.pas , соответственно), и должно быть ясно, какие функции будет проще дублировать в вашем потомок. TCustomControl добавляет три простых метода, реализованных примерно в 40 строках кода. Напишите потомок TScrollingWinControl и скопируйте в него методы и свойства из TCustomControl.

...