Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeilen in einer Listbox auf eine GEMEINSAME Breite verkü

  Alt 9. Jan 2005, 21:34
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;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat