Home » Tipps & Tricks » Komponenten » TRichEdit/TMemo/TEdit » Sichtbare Zeilen in TMemo ermitteln
Sichtbare Zeilen in TMemo ermitteln
Folgende Funktion erwartet als Parameter ein Objekt vom Typ TMemo. Es wird dann die Anzahl der sichtbaren Zeilen unter Berücksichtigung der aktuellen Schrifteinstellungen zurückgegeben.
function CountVisibleLines(const Memo: TMemo): Integer; Var OldFont: HFont; DC: THandle; TextMetric: TTextMetric; begin Result := 0; DC := GetDC(Memo.Handle); try OldFont := SelectObject(DC, Memo.Font.Handle); try GetTextMetrics(DC, TextMetric); Result := (Memo.ClientRect.Bottom - Memo.ClientRect.Top) div (TextMetric.tmHeight + TextMetric.tmExternalLeading); finally SelectObject(DC, OldFont); end; finally ReleaseDC(Memo.Handle, DC); end; end;
Ändert man den Parameter vom Typ TMemo in TRichEdit, funktioniert die Funktion auch mit RichEdit-Feldern.