Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Text zur Anzeige kürzen mit Punkte hinten

  Alt 28. Okt 2011, 00:43
Der schönste Ansatz ist es nicht gerade, aber vielleicht kannst du damit was anfangen:
Delphi-Quellcode:
function shortenString(c: TCanvas; s: string; w: integer; dots: boolean): string;
var
  exploder: TStringList;
  appendDots: boolean;
begin
  exploder := TStringList.Create;
  exploder.Delimiter := ' ';
  exploder.DelimitedText := trim(s);
  appendDots := False;
  while exploder.Count > 0 do
  begin
    if appendDots then
      s := exploder.DelimitedText + ' ...'
    else
      s := exploder.DelimitedText;
    if c.TextWidth(s) > w then
    begin
      exploder.Delete(exploder.Count - 1);
      appendDots := dots;
    end
    else
    begin
      break;
    end;
  end;
  exploder.Free;
  Result := s;
end;
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat