Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Editor de texto WYSIWYG
#1

Hola amigos.
Luego de algunos mensajes en otros temas relacionados con el uso del control WebView como editor de texto enriquecido y también de estudiar el control que Shordi compartió (httpEdit) decidí comenzar este tema con un ejemplo de código muy sencillo para ir paso a paso dando forma al texto y al código que lo hace posible.
La idea es comenzar desde lo simple para ir añadiendo complejidad, dado que de esta manera considero que es mejor para entender como funciona esta técnica.
En el proyecto adjunto, podran ver que de momento solo existe este método (que parece que no funciona) para cambiar el color del texto.
GAMBAS
  1. Public Sub tobColor_Click()
  2.   WebView1.ExecJavascript("document.execCommand('forecolor', false, '#0000FF')")


Los invito a participar en esta discusión sobre este control y como lograr el Gambas Writer. Smile
Saludos.


Archivos adjuntos
.gz test-webform-0.0.2.tar.gz Tamaño: 12.46 KB  Descargas: 3

1 Saludo.
    ¡Gracias!
#2

Sorry, he mirado el proyecto y el webview de gb.gui no tiene nada que ver con el webview de gb.qt5. Distintos métodos, distintas propiedades... y mi nivel de javascript, que es comparable al nivel medio de un martillo de goma en un mal día, no alcanza para tanto...

Por esta línea necesitas una capa intermedia que adapte el manejo a los componentes cargados

GAMBAS
  1. if component.isloaded("gb.gui") then
  2. ...
  3. elseif component.isloades("gb.qt") then
  4. ....



Etc. etc.

No podemos regresar
    ¡Gracias!
#3

(23-06-2021, 11:58)Shordi escribió:  el webview de gb.gui no tiene nada que ver con el webview de gb.qt5

Técnicamente no existe un gb.gui, sino que este componente se encarga de vincular, de acuerdo a la variable de entorno o, en su defecto, del escritorio en que se ejecute el programa. Así que creo que te referís a gb.gtk3.
Luego me interesa saber que cosas son diferentes para poder listarlas y plantearlas a Benoit, ya que como todo esto (webview en gtk) es nuevo tal vez falte implementar algo o exisan errores.
Saludos.

1 Saludo.
    ¡Gracias!
#4

Pues ya has tocado un par de cosas, en el de gtk no existe la función Eval y en el de qt no existe la funcion sethtml. Qt expone su texto html en la propiedad de lectura escritura HTML  y gtk no... eso con lo poco que hemos visto.

Creo que es un follón en el que no me siento cómodo por mi falta de capacidad en el tema de Javascript.

Se me ocurre que si el contenido lo almacenas en una estructura XML y todo manejo lo haces a través de ésta, sólo tienes que refrescar el contenido de los controles a uno con sethtml y a otro con html=

Es sólo una idea...

No podemos regresar
    ¡Gracias!
#5

(23-06-2021, 13:29)Shordi escribió:  Se me ocurre que si el contenido lo almacenas en una estructura XML y todo manejo lo haces a través de ésta, sólo tienes que refrescar el contenido de los controles a uno con sethtml
Puede ser, pero de todas maneras para usar el webview como editor de texto hay que obtener datos de este, como posición del cursor palabra seleccionada etc.

Luego, otro tema, en gambas 3.16 el componente WebView que depende de gb.qt5, gb.gtk3 y gb.gui son equivalentes en cuanto a métodos, todos tienen el método SetHtml, todos tienen el método ExecJavaScript, por ejemplo.
[Imagen: nSashGj.png][Imagen: 7j9Wkbq.png][Imagen: UBKFIwI.png]

1 Saludo.
    ¡Gracias!
#6

Pos no entiendo na. ¿Qué pasa pues con Eval? por qué funciona con qt5 y no con gtk?

No podemos regresar
    ¡Gracias!
#7

yo lo haria con Paint al editor... Undecided

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
    ¡Gracias!
#8

(23-06-2021, 17:40)tercoide escribió:  yo lo haria con Paint al editor...

No se me había ocurrido, pero podría ser.
Ademas de lo que ya tenemos en Gaucho, conoces algún programa en gambas que edite texto con paint?
Saludos.

1 Saludo.
    ¡Gracias!
#9

(23-06-2021, 21:37)tincho escribió:  Ademas de lo que ya tenemos en Gaucho, conoces algún programa en gambas que edite texto con paint?

No, tal vez en la granja...
Paint tiene soporte nativo para RTF y exporta a SVG, imprime, etc. Se me ocurre hacerlo con una DrawingArea, con controles nativos de eleccion de color, fuente, y algunos inventados para alignment, subrayado, etc. Algunos botones Load/Save/New/Close como para darle forma. El prompt ficticio con un timer cada 0.6seg y el caracter pipe al final de lo que escribes como emulando un textbox.

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
    ¡Gracias!
#10

(23-06-2021, 16:31)Shordi escribió:  Pos no entiendo na. ¿Qué pasa pues con Eval? por qué funciona con qt5 y no con gtk?

Luego de investigarlo creo que di con la razón de por que no funciona. Se trata del componente gb.qt5.webkit, que no esta disponible para gtk, y en dicho componente también existe WebView pero tiene otras propiedades y métodos. Así que puse un requerimiento en el bugtracker para que Ben cree el componente que falta, si desea hacerlo claro.

[Imagen: qODuf66.png]

1 Saludo.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)