Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.042 c
2-1190276518
труляля
2007-09-20 12:21
2007.10.14
отправка email


8-1167946339
joseph
2007-01-05 00:32
2007.10.14
DSPack


3-1181046100
ambhtr
2007-06-05 16:21
2007.10.14
Помогите составить запрос.


15-1190120030
tesseract
2007-09-18 16:53
2007.10.14
Демократия в действии!!


15-1189788494
Nic
2007-09-14 20:48
2007.10.14
Дизайн сайта





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