Mit einem Original-RichEdit wirst du es nicht wirklich 100% hinbekommen. Es gibt zwar das Ereignis "OnSelectionChange", das wird aber nicht ausgelöst wenn das Fenster einfach nur gescrollt wird.
Da du keine Komponente von TRichEdit ableiten möchtest, müsstest du die Fensterprozedur ersetzen (WindowProc hooken) und dort auf die Meldung WM_VSCROLL reagieren.
Beispiel:
Delphi-Quellcode:
type
TForm1 = class(TForm)
private
FOldRichEditWndProc: TWndMethod;
procedure HookRichEditWnd;
procedure NewRichEditWndProc(var Msg: TMessage);
end;
// Hooken:
procedure TForm1.HookRichEditWnd;
begin
FOldRichEditWndProc := RichEdit.WindowProc;
RichEdit.WindowProc := NewRichEditWndProc;
end;
// Abfangen:
procedure TForm1.NewRichEditWndProc(var Msg: TMessage);
begin
FOldRichEditWndProc(Msg);
if Msg.Msg = WM_VSCROLL then
begin
// Hier was tun...
end;
end;