Ver Mensaje Individual
  #2  
Antiguo 12-12-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para hallar el número de línea (basado en 0) en donde se encuantra el cursor:
Código:
Line := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, -1, 0);
Una vez que tienes la línea, para seleccionarla necesitas saber el primer y último caracter (su índice basado en el comienzo de todo el texto del Memo):
Código:
StartChar := SendMessage(Memo1.Handle, EM_LINEINDEX, Line, 0);
EndChar := SendMessage(Memo1.Handle, EM_LINEINDEX, Line + 1, 0);
y usar las propiedades SelStart y SelLength del Memo.

Todo junto lo podrías poner en el evento OnClick del Memo:

Código:
procedure TForm1.Memo1Click(Sender: TObject);
var
  Line: Integer;
  StartChar, EndChar: Integer;

begin
  Line := SendMessage(Memo1.Handle, EM_LINEFROMCHAR, -1, 0);
  StartChar := SendMessage(Memo1.Handle, EM_LINEINDEX, Line, 0);
  EndChar := SendMessage(Memo1.Handle, EM_LINEINDEX, Line + 1, 0);

  Memo1.SelStart := StartChar;
  Memo1.SelLength := EndChar - StartChar;
end;

// Saludos
Responder Con Cita