Главная страница
    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.5 MB
Время: 0.044 c
11-1087284544
DmitryS
2004-06-15 11:29
2005.01.30
KOL & InterBase


1-1106053344
Knoxville
2005-01-18 16:02
2005.01.30
Как узнать какой элемент выбран в TListBox?


1-1106000954
Knight
2005-01-18 01:29
2005.01.30
Список поддерживаемых наборов символов для выбранного шрифта


1-1106215634
Tria
2005-01-20 13:07
2005.01.30
Как сделать, чтобы в главном MDI окне не появлялись полосы прокру


14-1105494261
Думкин
2005-01-12 04:44
2005.01.30
С Днем Рождения! 12 января





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