Главная страница
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.025 c
3-1119542398
Koala
2005-06-23 19:59
2005.08.07
Помогите организовать ХП (Firebird)


4-1118335938
Ertong
2005-06-09 20:52
2005.08.07
RC-файлы


14-1121683826
boriskb
2005-07-18 14:50
2005.08.07
Что это?


3-1120214972
Dell3r
2005-07-01 14:49
2005.08.07
Like


1-1121894484
Grol
2005-07-21 01:21
2005.08.07
Перебор всевозможных сочетаний из символов