auf ganz genau die gleiche länge bekommst du es nur wenn du eine schriftart verwendest wo alle zeischen gleich breit sind oder in jeder zeile das gleiche steht. Ich benutz folgende Funktion (vor langer zeit mal selbst geschrieben da man sowas doch häufig braucht)
Delphi-Quellcode:
function getPunktPunktText(Text: String; Leinwand: TCanvas; maxbreite: Integer; PointCount: Byte = 3): String;
var LPoints: String;
begin
setlength(LPoints, PointCount);
FillChar(LPoints[1], PointCount, Integer('.'));
LPoints := LPoints + ' ';
if (length(text) > 4) and (leinwand.TextWidth(text) > maxbreite) then
begin
while (length(text) > 4) and (leinwand.TextWidth(text + LPoints) > maxbreite) do
text := copy(text, 1, length(text)-1);
text := text + LPoints;
end;
result := Text;
end;