Hallo,
wenn ich auf einem TRichEdit die gesetzten Ränder mit so einer schicken grauen Linie anzeigen möchte, wie im Layoutmodus von Word, so werden mir diese mit folgendem Code zwar wunderbar angezeigt:
Delphi-Quellcode:
procedure TForm11.SetBorders(var R: TRect);
var LeftLine, TopLine, RightLine, BottomLine : TShape;
begin
//Textränder als graue Linie anzeigen
LeftLine := Tshape.Create(RichEdit1);
with LeftLine do
begin
Parent := RichEdit1;
Shape := stRectangle;
Width := 1;
Pen.Color := $E6E6E6;
Top := R.Top - 15;
Height := R.Bottom - R.Top + 30;
Left := R.Left - 1;
end;
TopLine := TShape.Create(RichEdit1);
with TopLine do
begin
Parent := RichEdit1;
Shape := stRectangle;
Height := 1;
Width := R.Right - R.Left + 30;
Pen.Color := $E6E6E6;
Top := R.Top - 1;
Left := R.Left - 15;
end;
RightLine := TShape.Create(RichEdit1);
with RightLine do
begin
Parent := RichEdit1;
Shape := stRectangle;
Width := 1;
Pen.Color := $E6E6E6;
Top := R.Top - 15;
Height := R.Bottom - R.Top + 30;
Left := R.Right - 1;
end;
BottomLine := TShape.Create(RichEdit1);
with BottomLine do
begin
Parent := RichEdit1;
Shape := stRectangle;
Height := 1;
Width := R.Right - R.Left + 30;
Pen.Color := $E6E6E6;
Top := R.Bottom + 1;
Left := R.Left - 15;
end;
end;
aber anschließend sehe ich im RichEdit keine Buchstaben mehr. Der Cursor ist sichtbar und kann auch bewegt werden, aber es erscheinen keine Buchstaben.
Ich hab auch schon versucht, anschließend noch einmal die Fontfarbe des Richedits zu setzen - ohne Erfolg.
Aufgerufen wird die Prozedur im OnShow-Ereignis des TRichEdit.
Leider hat ja TRichedit keinen Canvas auf dem man rummalen kann, oder gibt es dafür doch eine Lösung?
Für Hinweise wäre ich dankbar.
Steffen