Как можно определить, на какой строке в TMemo находится курсор

 
Весь фокус в сообщении em_LineFromChar.  Попробуйте:
 
procedure TMyForm.BitBtn1Click(Sender: TObject);
var
  iLine : Integer ;
begin
   iLine := Memo1.Perform(em_LineFromChar, $FFFF, 0);
   { Внимание: номера строк начинаются с нуля }
   messageDlg('Line Number: ' + IntToStr(iLine), mtInformation, 
              [mbOK], 0 ) ;
end;

Используются технологии uCoz