Как да синхронизирате превъртането на две списъци

Не съм доволен от компонента Listview. Ще трябва да преоткрием колелото, но все пак.

Когато имаше подобна задача, зададох ItemIndex

Или може би все още има опции?

> [2] rolex (12.01.05 15:36)

> [4] rolex (12.01.05 15:40)

Има опции. Няма пример.
Опция: хванете в едно списъчно поле „e WM_VSCROLL и го препратете до друго списъчно поле“ y.

и как да го направя? Не мога без пример. Мога ли да имам пример, моля.

Е, помогнете ми. плиз! спешна нужда!

И така, как да го направя с WM_VSCROLL .

ако не можете да присвоите ItemIndex без пример, поне ще разберете какво сте направили.

A с ItemIndex като. На какво събитие да заложите?

Ето кода, който ми беше предложен от предишната публикация:
единица Unit1;

използва
Windows, съобщения, SysUtils, класове, графики, контроли, формуляри, диалогови прозорци,
StdCtrls, ExtCtrls;

Тип
TForm1 = клас (TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Splitter1: TSplitter;
процедура FormCreate (Изпращач: TObject);
частни
< Private declarations >
lbproc1, lbproc2: TWndMethod;
процедура NewProc1 (var msg: TMessage);
процедура NewProc2 (var msg: TMessage);
публично
< Public declarations >
край;

вар
Form1: TForm1;

процедура TForm1.NewProc1;
започнете
случай msg.Msg на
WM_VSCROLL, LB_SETCURSEL,
WM_KEYFIRST.WM_KEYLAST,
WM_MOUSEFIRST.WM_MOUSELAST:
lbproc2 (съобщение);
край;
lbproc1 (съобщение);
край;

процедура TForm1.NewProc2;
започнете
случай msg.Msg на
WM_VSCROLL, LB_SETCURSEL,
WM_KEYFIRST.WM_KEYLAST,
WM_MOUSEFIRST.WM_MOUSELAST:
lbproc1 (съобщение);
край;
lbproc2 (съобщение);
край;

процедура TForm1.FormCreate (Изпращач: TObject);
започнете
lbproc1: = ListBox1.WindowProc;
ListBox1.WindowProc: = NewProc1;
lbproc2: = ListBox2.WindowProc;
ListBox2.WindowProc: = NewProc2;
край;

Всичко работи чудесно. Но има едно НО, първо се превърта една списъчна кутия, след това втората списъчна кутия. Но не можете да ги накарате да превъртат едновременно?

и TListBo.TopIndex няма да спаси бащата на руската демокрация?
и едно от двете събития OnDrawItem (теоретично трябва да се извиква при превъртане, без промяна на избрания ред) или onClick (извиква се, когато избраният ред е наречен)

Всичко работи чудесно. Но има едно НО, първо се превърта една списъчна кутия, след това втората списъчна кутия. Но не можете да ги накарате да превъртат едновременно?
Изглежда компютърът ви е претоварен с нещо. Ще превъртя едновременно, макар че и приятелите ми се забавят.
Погледнете стартирането, ако има нещо "излишно"?


> Всичко работи чудесно. Но има едно НО, първи свитъци
> един списък, след това втори списък. Но за тях е невъзможно да превъртат
> едновременно?
> Изглежда компютърът ви е претоварен с нещо. Имам свитък
> в същото време, въпреки че приятелите също забавят.
> Проверете автоматично зареждане, за да видите дали има нещо „допълнително“?

Не, ти какво си Опитайте се да не превъртате бързо, но за кратко щракнете върху една от стрелките на лентата за превъртане с курсора.


> Всичко работи чудесно. Но има едно НО, първи свитъци
> един списък, след това втори списък. Но за тях е невъзможно да превъртат
> едновременно?
> Изглежда компютърът ви е претоварен с нещо. Имам свитък
> в същото време, въпреки че приятелите също забавят.
> Проверете автоматично зареждане, за да видите дали има нещо „допълнително“?

Не, ти какво си Опитайте се да не превъртате бързо, но за кратко щракнете върху една от стрелките на лентата за превъртане с курсора.


> но TListBo.TopIndex няма да спаси бащата на руската демокрация?
> и едно от двете събития OnDrawItem (теоретично трябва да се извика
> при превъртане, без промяна на маркираната линия) или onClick
> (извиква се, когато избраният ред е наречен)

Същото като при предишния пример. Превърта се не съвсем едновременно, отначало има забавяне.

2 rolex (13.01.05 11:06) [16]
"Лекувайте" компютъра си. Или проверете програмата на компютрите на приятели
Всичко лети, няма закъснения или спирачки

не, той не е за това.
първо ще се превърти една кутия с листове, а след това и втората.
как да направите едновременно превъртане и на двете?


> булка (13.01.05 22:39) [20]
> не, той не е за това.
> първо ще се превърти една кутия с листове и след това втората.
> как да направя едновременно превъртане и на двете?

Макар че ме разбираш.

Настигам.
Опишете накратко вашия хардуер