Petición de ayuda sobre TextEdit. - Versión para impresión +- Comunidad Gambas-es (https://gambas-es.org) +-- Foro: Gambas (https://gambas-es.org/forum-3.html) +--- Foro: General (https://gambas-es.org/forum-4.html) +--- Tema: Petición de ayuda sobre TextEdit. (/thread-441.html) |
Petición de ayuda sobre TextEdit. - Shordi - 05-06-2021 Y una petición de ayuda para el manejo del TextEdit: En un textEdit, cuando haces click izquierdo sobre un punto de un texto, el cursor se desplaza a él y se actualiza la propiedad .pos a ese punto. Sin embargo, cuando haces click derecho, este comportamiento no se produce y lo que se hace es abrir el popupmenu del control. Eso obliga a que para poder sacar la lista de sugerencias en la revisión ortográfica, se tenga que hacer una de estas dos cosas: a) Hacer un click sobre la palabra marcada como errónea (para situarse) y luego hacer un segundo click derecho para sacar la lista de sugerencias o b) Utilizar otro gesto de ratón o combinación de teclas para sacar dicha lista. (Ahora mismo lo que está programado es esta opción, usando doble Click) Lo que quiero es que, una vez marcada la palabra como errónea, situando el ratón sobre ella y pulsando directamente click derecho, se seleccionase la palabra y se desplegase la lista de sugerencias. Es decir, la opción a) pero sólo con una pulsación, que es el comportamiento usual en todos los editores. No os cuento todo lo que he probado porque sería interminable y condicionante y sólo os llevaría a callejones sin salida, como a mí. Adjunto mini proyecto de ejemplo de lo que hay y lo que se desea. Saludos RE: Petición de ayuda sobre TextEdit. - tincho - 05-06-2021 ok, le echo un vistazo y te digo algo Saludos. RE: Petición de ayuda sobre TextEdit. - vuott - 05-06-2021 Ehmmm... por ahora sólo con una línea de texto: Código: Private m As Menu RE: Petición de ayuda sobre TextEdit. - Shordi - 06-06-2021 Mmmm... casi, casi. Funciona si el texto sólo tiene una línea, pero si pruebas con cualquier texto que necesite varias líneas... la cosa no pita bien. Me has dado alguna idea, no obstante. Seguiré buscando. Gracias! Es todavía más complejo de lo que creía. Jugando con la propuesta de Vuott, veo que no sirve por cuanto el ancho de la fuente puede ser cambiado en cualquier párrafo o palabra, con lo que los cálculos de división por tamaño de caracteres pueden no ser válidos. Por otra parte, hallar la fila en la que se hace click a partir de lo que se ve en pantalla es imposible porque la pantalla puede estar mostrando sólo parte del texto. El control tiene las propiedades: .Paragraph que se muestra/establece el número de párrafo (<P>) en que se encuentra el cursor .index que creo que se muestra/establece el número de caracter dentro del párrafo donde se encuentra el cursor .Pos que inidica la posición del cursor dentro del texto (ojo, no del richtext) Y los métodos toParagraph toIndex y toPos Que parecen ser los que permiten mover el cursor dentro del richtext... pero que no sé muy bien qué hacen (resulta que mi sistema no tiene qt4, sólo qt5 y no me muestra la ayuda del control, que sólo existe para qt4). He probado todo lo que se me ha ocurrido y fracaso total. Creo que me voy a rendir con esto... RE: Petición de ayuda sobre TextEdit. - tincho - 06-06-2021 Una pregunta, ¿Es posible generar un evento artificial por código? Si por ejemplo, si el control textedit recibe un mousedown este cambia su posicion del cursor solo si es el boton izquierdo del mouse, pero si cuando se hace click con el derecho se genera un evento artificial digamos con el boton izquierdo lo que cambiaria la posicion del cursor. ¿Como lo ven? Es que ayer intente dar con una solución pero no logre sacar nada en claro. Saludos. RE: Petición de ayuda sobre TextEdit. - vuott - 06-06-2021 (06-06-2021, 13:52)tincho escribió: pero si cuando se hace click con el derecho se genera un evento artificial digamos con el boton izquierdo lo que cambiaria la posicion del cursor. Sí, también había pensado en este truco; pero... cómo decir "artificialmente" en Gambas y a Gambas, engañándolo, que se ha hecho clic en el botón izquierdo del ratón? Uhmmm... quizás enviando un comando apropiado a través de la función externa "ioctl()", que puede comunicarse a nivel bajo con el sistema. Pero ... vale la pena todo este lío? RE: Petición de ayuda sobre TextEdit. - Shordi - 06-06-2021 "Pero ... vale la pena todo este lío? ", Ipse dixit: Creo que no... pero es una pena, ciertamente. Nos auto-educamos en una serie de gestos y maneras y es duro renunciar a ellas. Muchas gracias por los esfuerzos. RE: Petición de ayuda sobre TextEdit. - vuott - 06-06-2021 (06-06-2021, 17:20)Shordi escribió: es duro renunciar a ellas ...quizás usando "Desktop.Sendkeys()"......... RE: Petición de ayuda sobre TextEdit. - Shordi - 06-06-2021 (06-06-2021, 19:44)vuott escribió:mmmm... no veo cómo ¿Qué tecla habría que pulsar?(06-06-2021, 17:20)Shordi escribió: es duro renunciar a ellas RE: Petición de ayuda sobre TextEdit. - vuott - 06-06-2021 (06-06-2021, 21:28)Shordi escribió: no veo cómo Me imaginé tal cosa: Código: Public Sub TextEdit1_MouseDown() |