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.