Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как узнать количество видимых строчек в TMemo?

01.01.2007
function LinesVisible(Memo: TMemo): integer; 
    Var 
      OldFont : HFont; 
      Hand : THandle; 
      TM : TTextMetric; 
      Rect  : TRect; 
      tempint : integer; 
    begin 
      Hand := GetDC(Memo.Handle); 
      try 
        OldFont := SelectObject(Hand, Memo.Font.Handle); 
        try 
          GetTextMetrics(Hand, TM); 
          Memo.Perform(EM_GETRECT, 0, longint(@Rect)); 
          tempint := (Rect.Bottom - Rect.Top) div 
             (TM.tmHeight + TM.tmExternalLeading); 
        finally 
          SelectObject(Hand, OldFont); 
        end; 
      finally 
        ReleaseDC(Memo.Handle, Hand); 
      end; 
      Result := tempint; 
    end; 

Взято из https://forum.sources.ru