одновременная прокрутка двух Tmemo

  • Автор темы greenbegin
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

greenbegin

Гость
#1
Подскажите, как в Delphi мне сделать такое:
есть два поля TMemo одинакового размера с вертикальной прокруткой.
нужно сделать так, чтобы когда прокручиваешь мышкой или тянешь бегунок в одном из полей, во втором прокручивалось бы все так же?
 
B

Barmutik

Гость
#2
Нужно породить наследника от TMemo у и него перекрыть два сообщения

Код:
 procedure WMVScroll(var Msg :TMessage); message WM_VSCROLL; 
procedure WMHScroll(var Msg :TMessage); message WM_HSCROLL;
Эти сообщения отвечают за скрол контрола... по ним Вы сможете отслеживать скрол своего контрола и далее скролить второй TMemo

Код:
procedure TMasterMemo.WMVScroll(var Msg : TMessage); 
begin 
inherited; 
FSlaveMemo.Perform(WM_VScroll, Msg.wParam, Msg.lParam); 
end; 


procedure TMasterMemo.WMHScroll(var Msg : TMessage); 
begin 
inherited; 
FSlaveMemo.Perform(WM_HScroll, Msg.wParam, Msg.lParam); 
end;
 
S

sunnmas

Гость
#3
Я работаю сейчас с TRichEdit. Воспользовался вышеприведенной подсказкой, НО

Вместе они прокручиваются только если тянуть за скроллбар. А если
1. Выделяешь и выделение перемещает область текста
2. крутишь колесико
3. нажимаешь колесико и тянешь

два TRichEdit разделяются.

Как сделать, чтоб они абсолютно всегда прокручивались вместе
 

VahaC

Well-Known Member
10.01.2007
116
0
#4
Нужно ещё перекрыть сообщения вызываемые
если
1. Выделяешь и выделение перемещает область текста
2. крутишь колесико
3. нажимаешь колесико и тянешь
К сожалению по имени их не знаю, но думаю мсдн должен знать.
 
Статус
Закрыто для дальнейших ответов.