Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

Компонент ScroolBar   Найти похожие ветки 

 
Gus   (2005-07-20 18:04) [0]

Здравствуйте.
А есть какая либо подвязка компонента ScroolBar к другим компонентам?
Вот допустим я размещаю скролинг на компоненте Panel. В панели, кнопок больше чем она может вместить. А скролинг как то сам по себе работает.
Если на форме элементов больше, чем она может вместить, то скролинг появляется автоматически.
Мастера, как подвязать скролинг к панели?


 
Lexer ©   (2005-07-20 18:30) [1]

Для вертикальной прокрутки кнопки на панели можно сделать так:

FTop := Button1.Top;

В событие ScrollBarChange:
 if Sender as TScrollBar = ScrollBar then
   Button1.Top := FTop - ScrollBar.Position;


 
Gus   (2005-07-20 18:30) [2]

Вот только на FAQ нашел

procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
 var ScrollPos: Integer);
begin
 Panel1.Perform(WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, ScrollPos), 0);
end;

Все равно не крутит в панели. Может чего я не добавил?


 
Gus   (2005-07-20 18:49) [3]

Это опять я. Товарищ Lexer, ваш способ действует, но он перемещает либо саму кнопку, либо панель по фомре. А можно фрагмент кода чтоб кнопка перемещалась в панели?

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
 if Sender as TScrollBar = ScrollBar1 then
  Panel1.Top:= Panel1.Top + ScrollBar1.Position;
end;
Вот так вот у меня получилось


 
Lexer ©   (2005-07-20 18:54) [4]

FTop - приватная переменная

FTop := Button1.Top

procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
if Sender as TScrollBar = ScrollBar1 then
 Button1.Top:= FTop + ScrollBar1.Position;
end;


Кнопка перемещается в панели, если конечно она находится на панели


 
Gus   (2005-07-20 19:26) [5]

Ага, с кнопкой заработало
А, например, как быть если в панели расположены кроме кнопок еще объекты?
Это значит для каждого условие прописывать?


 
Gus   (2005-07-20 19:41) [6]

А вот, допустим, код:
Где то, когда то, в какой то процедуре написано так:
 

   with TBitBtn.Create(Self) do
   begin
     Top :=10;
     Left :=10;
     Caption := "Пример";
     Parent :=Panel1;
   end;   // Т.е. кнопки расположены на панели.

А каким способом можно сделать, чтобы они внутри по скролингу "ездили"?



Страницы: 1 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
3-1120222202
DesWind
2005-07-01 16:50
2005.08.07
Раскрывающийся список DBLookupComboBox, как раскрыть полностью?


14-1121319792
pavel_guzhanov
2005-07-14 09:43
2005.08.07
Delphi 2005 & Delphi 7


1-1121685502
Destroyer
2005-07-18 15:18
2005.08.07
Как правильно удалить кнопку из её обработчика?


1-1121768733
Виталька2005
2005-07-19 14:25
2005.08.07
Пустая дата в DateTimePicker


8-1112253055
ndis
2005-03-31 11:10
2005.08.07
Как сделать прокрутку AVI файла , чтобы его было сквозь картинку.