Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.14;
Скачать: CL | DM;

Вниз

Синхронная прокрутка двух TMemo   Найти похожие ветки 

 
Ezorcist   (2007-09-16 17:58) [0]

Возможно ли?
имеется два поля TMemo с одинаковым количество строк, как сделать, что "протаскивании" одного ползунка прокрутки - так же перемещался и другой?


 
sniknik ©   (2007-09-16 18:29) [1]

например
type
 TMyMemo = class(TMemo)
   procedure WMVScroll(var Mess: TMessage); message WM_VSCROLL;
 end;

 TMemo = class(TMyMemo);

 TForm1 = class(TForm)
   Memo1: TMemo;
   Memo2: TMemo;
 ....

procedure TMyMemo.WMVScroll(var Mess: TMessage);
begin
 if Tag <> 0 then
   PostMessage(Tag, WM_VSCROLL, Mess.WParam, Mess.LParam);
 inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Memo1.Tag:= Memo2.Handle;
end;


 
{RASkov} ©   (2007-09-16 19:56) [2]

> Memo1.Tag:= Memo2.Handle;

Имхо... лучше не Хэндл запоминать, а сам объект.... так:
Memo1.Tag:= Integer(Memo2);
Так как, такая безобидная строка -
Memo2.Alignment:=taRightJustify;
и в Tag"е Memo1 мы имеем "битый" хэндл....


 
Ezorcist   (2007-09-18 19:52) [3]

2 sniknik

Спасибо) А что если скроллим колесом мышки? Если тащу за ползунок все ок, а если скролом мыши, то WM_VSCROLL судя по всему нет


 
sniknik ©   (2007-09-18 21:49) [4]

> то WM_VSCROLL судя по всему нет
есть (точку останова в нем поставь увидишь), только чегото ему не хватает чтобы синхронизироваться (может перед ним надо чего посылать, или завершать...) ищи в общем то что нужно передавать чтобы сработало

или передавай все события типа

 TMyMemo = class(TMemo)
   procedure WndProc(var Mess: TMessage); override;
 end;

procedure TMyMemo.WndProc(var Mess: TMessage);
begin
 if Tag <> 0 then //в Tag-е обьект по совету {RASkov} ©   (16.09.07 19:56) [2]
   with Mess do
     PostMessage(TMemo(Tag).Handle, Msg, WParam, LParam);

 inherited;
end;


только так будут свои "прибабахи", так к примеру событие смены фокуса передавать явно лишнее...  можеш кстати не искать, что нужно, а от всего "отсекать" лишнее. в конце концов добьешся того что тебя удовлетворит.


 
Ezorcist   (2007-09-18 22:59) [5]

Уф...  не знаю что это, но мне нужно было сообщение 522

sniknik  Спасибо!


 
sniknik ©   (2007-09-18 23:42) [6]

> не знаю что это
WM_MOUSEWHEEL       = $020A;
скролл колесом мыши... которого говорил нет...



Страницы: 1 вся ветка

Текущий архив: 2007.10.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
10-1138094689
Bratskiy
2006-01-24 12:24
2007.10.14
Поиск в Word по определённому стилю


1-1185959937
DevilDevil
2007-08-01 13:18
2007.10.14
Log call-stack


2-1190529112
zavialov
2007-09-23 10:31
2007.10.14
Не увеличивать счетчик ссылок - создать отдельный экземпляр.


2-1189943809
Denis_
2007-09-16 15:56
2007.10.14
XOR алгоритм


2-1190354881
em240
2007-09-21 10:08
2007.10.14
indy+ping