22 Votos

Lazarus: Consultar línea actual en Memo

Pregunta de Invitado | 01/05/2022 a las 13:43

Me gustaría recuperar el índice de la línea actual en el que el usuario está escribiendo actualmente desde un TMemo.

Desafortunadamente, mis búsquedas anteriores solo trajeron a la luz soluciones para Delphi con las que debería ser posible determinar la línea y la columna actuales dentro de un Memo como esto:

Line   := Memo1.Perform(EM_LINEFROMCHAR, Memo1.SelStart, 0) ;
Column := Memo1.SelStart - Memo1.Perform(EM_LINEINDEX, Line, 0) ;

En Lazarus, esto no funciona (mensaje de error: "Identifier not found / Identificador no encontrado EM_LINEFROMCHAR"). ¿Alguien tiene una solución?

ResponderPositivoNegativoFechaVotos
2Mejor Respuesta2 Votos

Es mucho más fácil.

Solo intenta esto:

Line   := Memo1.CaretPos.Y;
Column := Memo1.CaretPos.X;

CaretPos es la posición del cursor. Tiene una variable X e Y en la que se almacenan los valores que está buscando.

Hasta donde yo sé, "Perform" y "EM_LINEFROMCHAR" son típicos para el mundo de Windows y no podemos usarlos en la plataforma independiente Lazarus.
01/05/2022 a las 23:04

ResponderPositivo Negativo
00 Votos

La respuesta dada por el otro invitado es la mejor solución.

Además, si desea ir con su ruta original, debe especificar "Windows" en la sección Uses.
02/05/2022 a las 22:01

ResponderPositivo Negativo
Responder

Temas Relacionados

MySQL: Saltos de Línea en MySQL

Consejo | 0 Comentarios

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.