Thema: Delphi RichEdit: Textbreite

Einzelnen Beitrag anzeigen

Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: RichEdit: Textbreite

  Alt 11. Apr 2004, 07:50
Hi,

Danke für deine Antwort. Aber ich glaube die Lösung ist nicht so einfach.
Habe die gesamte DP u. Google PAQ durchwühlt.

Im RichEdit kann jedes Zeichen eine andere Schrift haben (rtf!),
auch der Abstand zwischen den Buchstaben könnte Variabel sein.

Für den Moment genügt mir aber mal eine Funktion, welche die Länge
einer bestimmten Zeile zurückgibt.

Hab mir diese Funktion Zusammengestellt:

Delphi-Quellcode:
function RE_RowWidth(re: TRichedit; Row: Integer): Integer;
var
  cv: TControlCanvas;
Begin
 with re do
  begin
    SelStart := Perform(EM_LINEINDEX, Row, 0);
    SelLength := Length(Lines[Row]);
  end;
  cv:= TControlCanvas.Create;
  Try
    cv.Control := re;
    cv.Font.Assign(re.SelAttributes);
    Result := cv.TextWidth(re.Lines[row]);
  Finally
    cv.Free;
  End;
end;
Für weitere Ideen bin nich offen.
Thomas
  Mit Zitat antworten Zitat