Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   posicionar cursor en un memo (https://www.clubdelphi.com/foros/showthread.php?t=12163)

Diego 08-07-2004 01:20:38

posicionar cursor en un memo
 
Hola a todos. Alguien me puede decir donde encontrar informancion para mopor posicionar el cursor en una posicion x dentro de un memo.
Por ejemplo: mover el cursor en la linea tres, a los x caracteres.
No se si se entiende la pregunta.
Desde ya muchas gracias.

roman 08-07-2004 02:13:57

Prueba esta rutina:

Código Delphi [-]
procedure MoveCaret(Memo: TMemo; Row, Col: Integer);
var
  LineIndex: Integer;
  LineLength: Integer;

begin
  LineIndex := Memo.Perform(EM_LINEINDEX, Row, 0);

  if LineIndex = -1 then
    Memo.SelStart := Length(Memo.Text)
  else
  begin
    LineLength := Memo.Perform(EM_LINELENGTH, LineIndex, 0);
    if Col > LineLength then Col := LineLength;

    Memo.Perform(EM_SETSEL, LineIndex + Col, LineIndex + Col)
  end;

  Memo.Perform(EM_SCROLLCARET, 0, 0);
end;

Al procedimiento le pasas el Memo donde quieres mover el cursor (caret). Si Row es mayor que el número de líneas del memo el cursor se va hasta el final del memo y si Col es mayor que el número de caracteres en el renglón especificado entonces el cursor se mueve al final de dicha línea.

Tanto Row como Col están basados en cero, esto es, el primer renglón es el 0 y la primera colmna es la 0.

// Saludos


La franja horaria es GMT +2. Ahora son las 04:10:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi