Thema: Delphi memo zeilen anzahl?!!

Einzelnen Beitrag anzeigen

Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: memo zeilen anzahl?!!

  Alt 24. Jan 2006, 12:53
Hallo,
Zitat von tomsel:
...Lines.Count liefert allerdings auf jeden Fall die tatsächliche Zeilenanzahl, der Fehler muss anderswo liegen...
der Fehler liegt beim QRMemo, denn Lines.Count gibt nicht die Anzahl der umgebrochenen Zeilen aus

mit dem Code lassen sich die fehlenden Informationen ermitteln:
Delphi-Quellcode:
var z,CW,H,LinesH,TextH : Integer;
    aRect : TRect;
    B : TBitMap;
begin
  B := TBitmap.Create;
  B.Canvas.Font := QRMemo1.Font;
  LinesH := B.Canvas.TextHeight('Test-String');
  CW := QRMemo1.ClientWidth;
  H := 0;
  TextH := 0;
  for z := 0 to QRMemo1.Lines.Count-1 do
    begin
    aRect.Right := CW;
    H := DrawText(B.Canvas.handle,PChar(QRMemo1.Lines[z]),Length(QRMemo1.Lines[z]),aRect,DT_CALCRECT or DT_WORDBREAK or DT_NOCLIP);
    TextH := TextH+H;
    end;
  B.Free;
  showmessage('Die ermittelte Texthöhe: '+IntToStr(TextH)+#13#10
              +'Zeilen: '+IntToStr(Round(TextH/LinesH)));
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat