Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Синхронизировать скроллинг двух TRichEdit


misha_gr ©   (2008-03-04 16:23:00) 

Как можно синхронизировать скроллинг двух TRichEdit'ов? Наподобие того, как это делается в Total Commander при сравнении двух файлов по содержимому?


misha_gr   (2008-03-04 19:42:00) [1]

Ползунки бегают, но вот содержимое не скроллится...
Чего не хватает?

procedure TFrameCompare.AdjustRichEdits(Sender : TObject);
var ThumbRes : longint; R : TRect; SI_Vert, SI_Horz: TScrollInfo;
begin
 if Sender = RichEdit1 then
 begin

   SI_Vert.cbSize := SizeOf(SI_Vert);
   SI_Vert.fMask  := SIF_ALL;
   GetScrollInfo(RichEdit1.Handle, SB_Vert, SI_Vert);

   SI_Horz.cbSize := SizeOf(SI_Horz);
   SI_Horz.fMask  := SIF_ALL;
   GetScrollInfo(RichEdit1.Handle, SB_HORZ, SI_Horz);

   AdjustEdit(SI_Vert, SI_Horz, RichEdit2);

 end
 else if Sender = RichEdit2 then
 begin

   SI_Vert.cbSize := SizeOf(SI_Vert);
   SI_Vert.fMask  := SIF_ALL;
   GetScrollInfo(RichEdit2.Handle, SB_Vert, SI_Vert);

   SI_Horz.cbSize := SizeOf(SI_Horz);
   SI_Horz.fMask  := SIF_ALL;
   GetScrollInfo(RichEdit2.Handle, SB_HORZ, SI_Horz);

   AdjustEdit(SI_Vert, SI_Horz, RichEdit1);

 end
end;

procedure TFrameCompare.AdjustEdit(const SI_Vert, SI_Horz: TScrollInfo; AControl : TWinControl);
var bRes : integer;
begin
 FAdjustment := true;
 try
   bRes := SetScrollInfo(AControl.Handle, SB_Vert, SI_Vert, true);
   bRes := SetScrollInfo(AControl.Handle, SB_Horz, SI_Horz, true);
   AControl.Refresh;
 finally
   FAdjustment := false;
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо