...scroll to a certain Position in a TRichEdit/ TMemo?

Author: Thomas Stutz

Category: VCL

procedure TForm1.Button1Click(Sender: TObject);
var
  
itemp: Integer;
begin
  with 
RichEdit1 do
  begin
    
// Move to the last line:
    // Zur letzten Zeile scrollen:
    
SelStart := Length(Text);
    Perform(EM_SCROLLCARET, 0, 0);

    // or: Perform(WM_VSCROLL, SB_BOTTOM,0);

    // Move to the first line:
    // Zur ersten Zeile Scrollen:
    
SelStart := Perform(EM_LINEINDEX, 0, 0);
    Perform(EM_SCROLLCARET, 0, 0);

    // Move to Line 5, Character 3:
    // Cursor auf Linie 5, Postion 3 setzen:
    
SelStart := Perform(EM_LINEINDEX, 5, 0) + 3;
    Perform(EM_SCROLLCARET, 0, 0);

    // Scroll down 1 Line
    // Eine linie nach unten scrollen
    
with RichEdit1 do
    begin
      
itemp := SendMessage(Handle, EM_LINEFROMCHAR, SelStart, 0);
      SelStart := Perform(EM_LINEINDEX, itemp + 1, 0);
      Perform(EM_SCROLLCARET, 0, 0);
    end;

    // Set the focus on the RichEdit:
    // Den Fokus aufs RichEdit setzten:
    
SetFocus;
  end;
end;

 

printed from
www.swissdelphicenter.ch
developers knowledge base