Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
1-1121278255
Fanny
2005-07-13 22:10
2005.08.07
подсчёт CRC32 файла


9-1113583807
Vaitek
2005-04-15 20:50
2005.08.07
Эффект быстрого вращения


1-1121770761
td
2005-07-19 14:59
2005.08.07
как скопировать текст из нескольких текстовых файлов в один?


3-1120106877
W
2005-06-30 08:47
2005.08.07
Перемещение по DBGrid средней кнопкой мыши


14-1121328888
Juice
2005-07-14 12:14
2005.08.07
Перевод исходников C++ <--> Delphi




   Наверх