Как да синхронизирате превъртането на две списъци
Не съм доволен от компонента 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;
край;