// TMemo zeilen- oder buchstabenweise scrollen.
// siehe auch
Listboxes, Memos oder Richedits scrollen


// Getestet mit D4 unter XP

procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Memo1.ScrollBars := ssBoth; // bei Bedarf 
end; 
 
 
 
procedure MemoScroll(cm: TCustomMemo; x, y: integer); overload; 
begin 
  cm.Perform(EM_LINESCROLL, x, y); 
end; 
 
procedure MemoScroll(cm: TCustomMemo; zuZeile: integer); overload; 
var i: integer; 
begin 
  i := cm.Perform(EM_GETFIRSTVISIBLELINE, 0, 0); 
  cm.Perform(EM_LINESCROLL, 0, succ(zuZeile - i)); 
  MemoScroll(cm, -pred(length(cm.Text)), 0); 
end; 
 
 
 
// Beispielaufrufe: 
 
// 25 Zeilen vorwärts 
procedure TForm1.Button3Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, 0, 25); 
end; 
 
// 15 Zeilen rückwärts 
procedure TForm1.Button4Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, 0, -15); 
end; 
 
// zum Ende 
procedure TForm1.Button5Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, 0, pred(Memo1.lines.count)); 
end; 
 
// zum Anfang 
procedure TForm1.Button6Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, 0, -pred(Memo1.lines.count)); 
end; 
 
// Zum Zeilenanfang der elften Zeile (Zählung beginnt bei "0") 
procedure TForm1.Button7Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, 10); 
end; 
 
// 10 Zeichen nach rechts 
procedure TForm1.Button8Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, 10, 0); 
end; 
 
// 10 Zeichen nach links 
procedure TForm1.Button9Click(Sender: TObject); 
begin 
  Memoscroll(Memo1, -10, 0); 
end;



 

Zugriffe seit 6.9.2001 auf Delphi-Ecke