Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.51 MB
Время: 0.025 c
14-1105611779
Ega23
2005-01-13 13:22
2005.01.30
У кого есть песня


11-1089101164
Nox
2004-07-06 12:06
2005.01.30
KOLEdb: работа с несколькими таблицами


3-1103603272
bers
2004-12-21 07:27
2005.01.30
Доброго времени суток, мастера! Тормоза при повторном выполнении


1-1106226580
Tomkat
2005-01-20 16:09
2005.01.30
Список параметров из INI файла


14-1105451620
syte_ser78
2005-01-11 16:53
2005.01.30
Хочу избежать службу в армии





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский