2011-01-12 4 views
1

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

Могу ли я получить их от TComponent?

Если это не удается, могу ли я разместить TPanel на моей основной форме & компонент на этом и получить полосы прокрутки? Я намерен иметь компонент (и Panel или что-то еще) alClient, чтобы они автоматически зависали, когда меняет размер моего компонента, но я также хотел бы, чтобы они имели (авто) полосы прокрутки.

ответ

5

Если я понял, что вы намеревались сделать, это сделать:

  • добавить TScrollBox на форму
  • добавить визуальные компоненты на компоненте TScrollBox
  • не беспокоиться полосы прокрутки, поскольку они будут отображаться автоматически, когда это необходимо (когда компонент выходит из видимой области)
  • получайте удовольствие!
+0

+1 Спасибо, Дорин. Я уверен, что это путь. В настоящее время он не работает, но я буду смотреть в него дальше и, надеюсь, дойдем до нее – Mawg

+0

Хмм, возможно, не работает, потому что мой «контроль» - это форма, которую я размещаю на другой форме (вместе с некоторыми другими элементами управления)? – Mawg

+0

Я так не думаю ... в одном из моих проектов я создал пользовательский «поиск базы данных» на нескольких таблицах и т. Д., И они, как пользователь создают условия, - это то, что в форме поиска у меня есть прокрутка и на scrollbox Я добавляю comboboxes, lookupcomboboxes и т. д. (динамически). Я не вижу, почему формы будут реагировать иначе. Не выровняйте вторичную форму с «alClient», добавьте ее в Left = 0, Top = 0, так что, когда форма родителя сжимается, дочерняя форма сохранит ее размер, однако полосы прокрутки появятся, если это необходимо, чтобы показать весь содержание детской формы. – ComputerSaysNo

3

Для визуального контроля вы обычно спускаетесь с TControl или (лучше) TWinControl. TWinControl - это оболочка элементов управления Windows (виджеты), и Windows может предоставлять полосы прокрутки для содержимого. Возможно, вы захотите посмотреть исходный код TScrollbox в качестве руководства или заменить вашу идею TPanel.

+0

+1 за то, что нашли время, чтобы ответить. К сожалению, это сторонний элемент управления, поэтому мне просто нужно жить с тем, что у меня есть (поэтому я подумал о том, чтобы добавить его в качестве ребенка, что-то, что я могу контролировать и сделать его alCLient. – Mawg

+0

@Leonix вы не можете получить источник этого компонента? –

+0

@ Leonix даже сторонний элемент управления обычно происходит от TWinControl или TForm (который является потомком TWinControl). Однако из ваших комментариев я вижу, что вы неправильно сформулировали свои потребности. Вам не нужно добавлять scrollbars для управления, но вы хотите, чтобы он соответствовал более широкому управлению для ограниченного пространства просмотра. Поэтому просто поставьте элемент управления в TScrollBox. –

Смежные вопросы