Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Отображение динамически созданных кнопок


Автор: vvkatom 27.10.2010, 11:32
Всем привет. Может кто сталкивался с такой проблемой:
Динамически создаю кнопки на динамически созданном ScrollBoxe.
Количество кнопок заранее не известно, но если они выходят за края,
не все кнопки видны.
ScrollBox.AutoScroll :=true не работает .
почему? Перелопатил кучу форумов, найти ответов не могу. 

пока что, код такой:
Код

 TopBox := TScrollBox.Create(self);
 TopBox.Align := AlClient;
 TopBox.Left := 0;
 TopBox.Top := 0;
 TopBox.Parent := TopPanel;
 TopBox.AutoScroll := True;
 TopBox.AutoSize := False;

 c := TopPanel.Width div 152;
  for i := low(TopButtons) to high(TopButtons) do begin
    TopButtons[i] := TDxButton.Create(nil);
    TopButtons[i].Caption := 'ÁÀР ' + IntToStr(i + 1);
    TopButtons[i].Width := 150;
    TopButtons[i].Height := 20;
    TopButtons[i].Font.Color := clBackground;
    TopButtons[i].Align := alCustom;
    TopButtons[i].Left := 152 * (i mod c);
    TopButtons[i].Top := 22 * (i div c);
    TopButtons[i].Parent := TopBox;
  end;

Автор: Snowy 27.10.2010, 12:08
Наоборот сделай.
Клади не скроллбокс в панель, а панель в скролл бокс.
И у панели сделай автосайз.
Тогда скроллбокс будет крутить панель с кнопками.

Автор: vvkatom 27.10.2010, 12:32
Спасибо большое за ответ  smile 
Единственное, с чем столкнулся, что parent кнопок это ScrollBox  smile 

Автор: amsoft 27.10.2010, 12:43
vvkatom, 
Автопрокрутка к требуемому компоненту на скроллбоксе:

Код

ScrollBox.ScrollInView(MyButton);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)