DruckenMister WongFacebook

Ränder von mehrzeiligen Textfeldern setzen/lesen

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Dieser Artikel zeigt, wie Sie die Randbegrenzungen mehrzeiliger Textfelder, wie z.B. einer TMemo oder TRichEdit-Komponente lesen und setzen können.Für diese Aufgaben sind im Wesentlichen zwei Botschaften zuständig: EM_GETRECT zum Lesen und EM_SETRECT zum Setzen. Diese müssen an das Handle des Textfeldes gesendet werden.Im folgenden Beispiel wird zunächst das benutzbare Rechteck einer TMemo-Komponente ermittelt und danach der linke und rechte Rand jeweils auf einen Abstand von 20 Pixelgesetzt. Die obere und untere Grenze bleibt unberührt:


procedure TForm1.Button1Click(Sender: TObject);
var
  R: TRect;
begin
  Memo1.Perform(EM_GETRECT, 0, LongInt(@R));
  R.Left:=20;
  R.Right:=Memo1.ClientWidth - 20;
  Memo1.Perform(EM_SETRECT, 0, LongInt(@R));
  Memo1.Refresh;
end;