Форум: "KOL";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
ВнизВопрос по синхронизации прокрутки двух KolListBox Найти похожие ветки
← →
LAutour (2006-03-23 10:43) [0]Как синхронизировать прокрутку в двух ListBox (KolListBox).
Поиски в интернете не блещут разнообразием примеров по подобному вопросу.
← →
ECM © (2006-03-23 15:06) [1]А поиск по MSDN не пробовали? :))
Я так понимаю что интересует вертикальная прокрутка...?
Например так (если пользоваться встроенной в ListBox полосой прокрутки):procedure TForm1.ListBox2Scroll(Sender: PControl; Bar: TScrollerBar;
ScrollCmd, ThumbPos: Cardinal);
begin
ListBox1.Perform(LB_SETTOPINDEX,ListBox2.Perform(LB_GETTOPINDEX,0,0),0);
end;
procedure TForm1.ListBox1Scroll(Sender: PControl; Bar: TScrollerBar;
ScrollCmd, ThumbPos: Cardinal);
begin
ListBox2.Perform(LB_SETTOPINDEX,ListBox1.Perform(LB_GETTOPINDEX,0,0),0);
end;
Почитайте в MSDN о LB_SETTOPINDEX, LB_GETTOPINDEX
З.Ы. Этот способ ИМХО не очень "красиво" выглядит. Две полосы прокрутки (у каждого списка своя). Список который прокручивается программно визуально отстает (видно как сначала прокручивается один - потом его догоняет второй).
"Красивее" сл. решение - выключаем в обоих списках собственную полосу прокрутки:
loNoHideScroll = TRUE и ListBoxN.Style := ListBoxN.Style and (not WS_VSCROLL);
Делаем отдельный общий Скроллбокс и для него:procedure TForm1.ScrollBar1SBScroll(Sender: PControl; Cmd: Word);
begin
ListBox2.Perform(LB_SETTOPINDEX,ScrollBar1.SBPosition,0);
ListBox1.Perform(LB_SETTOPINDEX,ScrollBar1.SBPosition,0);
end;
← →
LAutour (2006-03-24 06:48) [2]Спасибо.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2006.12.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.065 c