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

Previous  Top  Next

    
 

 

 

Code:

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;

 

 

 

©Drkb::00556

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