Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];
ВнизСинхронная прокрутка двух 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c