Thema: Delphi Zeilen umbrechen

Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Zeilen umbrechen

  Alt 3. Mär 2009, 20:32
Im Delphi Quellcode hatte ich dazu eine Näherungs-Funktion gefunden:
Delphi-Quellcode:
  function GetAveCharSize(Canvas: TCanvas): TPoint;
  var
    I: Integer;
    Buffer: array[0..51] of Char;
  begin
    for I := 0 to 25 do Buffer[I] := Chr(I + Ord('A'));
    for I := 0 to 25 do Buffer[I + 26] := Chr(I + Ord('a'));
    GetTextExtentPoint(Canvas.Handle, Buffer, 52, TSize(Result));
    Result.X := Result.X div 52;
  end;
Die ist aber je nach verwendeten Zeichen in der Zeile relativ ungenau.

Gelesen hatte ich über folgende Vorgehensweise:

Erste Hälfte String testen.
-> zu kurz
Zweite Hälfte teilen, zufügen neu testen
-> zu lang
Erste Hälfte nochmal halbieren und testen

usw. bis man man nur noch ein unteilbares Zeichen hat.

Hoffe das Prinzip ist klar, Code kann ich dazu leider keinen bei mir finden.
  Mit Zitat antworten Zitat