Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизКак синхронизировать прокрутку двух Listbox ов??? Найти похожие ветки
← →
rolex (2005-01-12 15:25) [0]Меня не устраивает компонент Listview. Придётся изобретать велосипед, но всё-же.
← →
Sandman25 © (2005-01-12 15:30) [1]Когда стояла аналогичная задача, присваивал ItemIndex
← →
rolex (2005-01-12 15:36) [2]А может ещё есть варианты?
← →
begin...end © (2005-01-12 15:37) [3]> [2] rolex (12.01.05 15:36)
Есть.
← →
rolex (2005-01-12 15:40) [4]
> begin...end © (12.01.05 15:37) [3]
> > [2] rolex (12.01.05 15:36)
>
> Есть.
Дайте примерчик пожалуйста!
← →
begin...end © (2005-01-12 15:42) [5]> [4] rolex (12.01.05 15:40)
Варианты есть. Примерчика нет.
Вариант: отлавливать в одном listbox"е WM_VSCROLL и пересылать его другому listbox"у.
← →
rolex (2005-01-12 15:48) [6]а как это сделать? Я без примера не могу. Можно примерчик, ну пожалуйста!!!
← →
rolex (2005-01-12 16:35) [7]НУ помогите же!!! плиз! срочно надо!
← →
rolex (2005-01-12 18:09) [8]Так всё-же как сделать с
WM_VSCROLL
???
← →
bulkas (2005-01-12 18:13) [9]если без примерчика не можешь присваивай ItemIndex, хоть поймешь что сделал.
← →
rolex (2005-01-12 18:57) [10]A с
ItemIndex
как??? На какое событие то ставить?
← →
Vit@ly © (2005-01-12 19:47) [11]http://denisov.i2x2.ru/delphi/Units/SListBox.rar
← →
rolex (2005-01-12 22:09) [12]Вот код, который мне был предложен предыдущим постом:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Splitter1: TSplitter;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
lbproc1, lbproc2: TWndMethod;
procedure NewProc1(var msg: TMessage);
procedure NewProc2(var msg: TMessage);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.NewProc1;
begin
case msg.Msg of
WM_VSCROLL, LB_SETCURSEL,
WM_KEYFIRST..WM_KEYLAST,
WM_MOUSEFIRST..WM_MOUSELAST:
lbproc2(msg);
end;
lbproc1(msg);
end;
procedure TForm1.NewProc2;
begin
case msg.Msg of
WM_VSCROLL, LB_SETCURSEL,
WM_KEYFIRST..WM_KEYLAST,
WM_MOUSEFIRST..WM_MOUSELAST:
lbproc1(msg);
end;
lbproc2(msg);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
lbproc1 := ListBox1.WindowProc;
ListBox1.WindowProc := NewProc1;
lbproc2 := ListBox2.WindowProc;
ListBox2.WindowProc := NewProc2;
end;
end.
Всё работает замечательно. Но есть одно НО, сначала прокручивается один listbox, потом второй listbox. А нельзя чтоб они прокручивались одновременно?
← →
TButton © (2005-01-12 22:29) [13]а TListBo.TopIndex не спасеь отца русской демократии?
и одно из двух событий OnDrawItem (теоретически должно вызываться при прокрутке, без изменения выделеной строки) или onClick (вызывается при именении выделеной строки)
← →
Vit@ly © (2005-01-13 07:36) [14]Всё работает замечательно. Но есть одно НО, сначала прокручивается один listbox, потом второй listbox. А нельзя чтоб они прокручивались одновременно?
Похоже, что у тебя комп чем-то перегружен. У меня скролит одновременно, хотя у друзей тоже тормозит.
Посмотри автозагрузку, нет ли чего-либо "лишнего"?
← →
rolex (2005-01-13 11:06) [15]
> Всё работает замечательно. Но есть одно НО, сначала прокручивается
> один listbox, потом второй listbox. А нельзя чтоб они прокручивались
> одновременно?
> Похоже, что у тебя комп чем-то перегружен. У меня скролит
> одновременно, хотя у друзей тоже тормозит.
> Посмотри автозагрузку, нет ли чего-либо "лишнего"?
Нет, ты что. Ты попробуй не быстро прокручивать, а кратковременно курсором кликать на одну з стрелочек скроллбара.
← →
rolex (2005-01-13 11:06) [16]
> Всё работает замечательно. Но есть одно НО, сначала прокручивается
> один listbox, потом второй listbox. А нельзя чтоб они прокручивались
> одновременно?
> Похоже, что у тебя комп чем-то перегружен. У меня скролит
> одновременно, хотя у друзей тоже тормозит.
> Посмотри автозагрузку, нет ли чего-либо "лишнего"?
Нет, ты что. Ты попробуй не быстро прокручивать, а кратковременно курсором кликать на одну з стрелочек скроллбара.
← →
rolex (2005-01-13 12:03) [17]
> а TListBo.TopIndex не спасеь отца русской демократии?
> и одно из двух событий OnDrawItem (теоретически должно вызываться
> при прокрутке, без изменения выделеной строки) или onClick
> (вызывается при именении выделеной строки)
Тоже самое, что и с предыдущим примером. Прокручиваются не совсем одновременно, вначале наблюдается отставание.
← →
rolex (2005-01-13 19:06) [18]ауу!!! Помогите же.
← →
Vit@ly © (2005-01-13 20:43) [19]2 rolex (13.01.05 11:06) [16]
"Лечи" свой компьютер. Или проверь программу на компьютерах друзей
Все летает, ни каких задержек и тормозов
← →
bulkas (2005-01-13 22:39) [20]не, он не про то.
сначала скролится один лист-бокс, а затем второй.
как сделать, чтоб оба одновременно скролились?
← →
rolex (2005-01-14 19:07) [21]
> bulkas (13.01.05 22:39) [20]
> не, он не про то.
> сначала скролится один лист-бокс, а затем второй.
> как сделать, чтоб оба одновременно скролились?
Хоть ты меня понял.
← →
Vit@ly © (2005-01-14 19:41) [22]2 rolex (14.01.05 19:07) [21]
См. (и желательно последуй) Vit@ly © (13.01.05 20:43) [19]
и никаких
сначала скролится один лист-бокс, а затем второй.
← →
Vit@ly © (2005-01-14 19:51) [23]В догонку.
Опиши кратко свою "железку"
← →
rolex (2005-01-15 21:09) [24]
> Vit@ly © (14.01.05 19:51) [23]
> В догонку.
> Опиши кратко свою "железку"
P-III 866Mhz, 256Mb. Помоему этого достаточно, для выполнения таких операций.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.037 c