Конференция "Основная" » Синхронизировать скроллинг двух TRichEdit
 
  • misha_gr (04.03.08 16:23) [0]
    Как можно синхронизировать скроллинг двух TRichEdit'ов? Наподобие того, как это делается в Total Commander при сравнении двух файлов по содержимому?
  • misha_gr (04.03.08 19:42) [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;
 
Конференция "Основная" » Синхронизировать скроллинг двух TRichEdit
Есть новые Нет новых   [134431   +16][b:0][p:0]