Páginas (2): 1 2   
tincho   23-06-2021, 09:41
#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.
Código:
Public Sub tobColor_Click()
  WebView1.ExecJavascript("document.execCommand('forecolor', false, '#0000FF')")
End
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: 4)

1 Saludo.
Shordi   23-06-2021, 11:58
#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

Código:
if component.isloaded("gb.gui") then
...
elseif component.isloades("gb.qt") then
....
endif

Etc. etc.

No podemos regresar
tincho   23-06-2021, 13:25
#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.
Shordi   23-06-2021, 13:29
#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
tincho   23-06-2021, 14:55
#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.
Shordi   23-06-2021, 16:31
#6
Pos no entiendo na. ¿Qué pasa pues con Eval? por qué funciona con qt5 y no con gtk?

No podemos regresar
tercoide   23-06-2021, 17:40
#7
yo lo haria con Paint al editor... Undecided

"Es mejor saber todo de muy poco que muy poco de todo" - anonimo
tincho   23-06-2021, 21:37
#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.
tercoide   23-06-2021, 23:11
#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
tincho   24-06-2021, 11:29
#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.
Páginas (2): 1 2   
  
Usuarios navegando en este tema: 5 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.