Eventuell noch ein anderer Ansatz:
Delphi-Quellcode:
begin
fMaxLen := 635; // Die maximal zulässige Breite der Zeichenfolge in der Anzeige.
fMaxStrLen := tsTextGetWidthA(SongName); // Aktuelle Breite ermitteln.
if fMaxStrLen >= fMaxLen then begin // Ist die größer als die Maximalbreite?
SongName := SongName + '...'; // dann ... anhängen
fMaxStrLen := tsTextGetWidthA(SongName); // und die neue Breite ermitteln.
repeat // Solange wiederholen
Delete(SongName,Length(SongName) - 4,1); // viertletztes Zeichen entfernen
fMaxStrLen := tsTextGetWidthA(SongName); // Neue Breite ermitteln.
until fMaxStrLen <= fMaxLen; // Bis die Breite <= der Maximalbreite ist.
end;
end;