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