Главная страница
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.029 c
15-1189770684
NeedForHelpAlways
2007-09-14 15:51
2007.10.14
Как сделать словарь терминов?


15-1190095040
de.
2007-09-18 09:57
2007.10.14
Среды разработки под FreeBSD


15-1189496573
ocean
2007-09-11 11:42
2007.10.14
Очистить фон на фотографии


9-1161443298
Xdebugger
2006-10-21 19:08
2007.10.14
ODE


15-1189477252
Slider007
2007-09-11 06:20
2007.10.14
С днем рождения ! 11 сентября 2007 вторник