Home » Tipps & Tricks » Komponenten » TRichEdit/TMemo/TEdit » Ränder von mehrzeiligen Textfeldern setzen/lesen

Ränder von mehrzeiligen Textfeldern setzen/lesen

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;