Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];

Вниз

Компонент 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.042 c
6-1114672921
SH@RK
2005-04-28 11:22
2005.08.07
Как c помощью WinInet закачать HTML страничку по адресу https://


5-1092299241
stud
2004-08-12 12:27
2005.08.07
каким образом выполнить метод компанента?


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


1-1121349544
webpauk
2005-07-14 17:59
2005.08.07
запись картинок из ImageList


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский