-
Как можно синхронизировать скроллинг двух TRichEdit'ов? Наподобие того, как это делается в Total Commander при сравнении двух файлов по содержимому?
-
Ползунки бегают, но вот содержимое не скроллится... Чего не хватает?
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;
|