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

Retrocompatibilidad
#1

[Imagen: PxtcP2x.jpg]
Hola a todos.
Debido a los recientes cambios en la versión 3.16 de gambas surge un inconveniente, al memos durante unos meses, referente a las retrocompatibilidad de las aplicaciones que se desarrollen en dicha versión del IDE.
Ejemplo: En el caso de WebView sucede que en la versión qt4 este tiene la propiedad .HTML que se usa para pasarle el texto a renderizar pero en la versión gtk3 esta propiedad no existe más y en su lugar hay que usar el método .SetHtml() lo cual hace que nuestros programas sean incompatibles con versiones anteriores de gambas.
Una posible solución pasa por usar un condicional como IF o Select:
GAMBAS
  1. '' Opción 1
  2. If CInt(Split(System.FullVersion, ".")[1]) > 15 Then
  3.   WebView1.SetHtml(sContent)
  4.   Else
  5.   WebView1.HTML = sContent
  6.  
  7. '' Opción 2
  8. xClass = Classes["WebView"]
  9.   If xClass.Exist("HTML") Then
  10.   WebView1.HTML = sContent
  11.   Else
  12.     If xClass.Exist("SetHtml") Then
  13.     WebView1.SetHtml(sContent)
  14.     Endif


Luego de varios intentos en varios escenarios de componentes, la que funciono en todos los casos es la opción 2.
Saludos

1 Saludo.
[-] Los siguientes 1 usuarios dice gracias a tincho por este post:
  • jsbsan
    ¡Gracias!
#2

Tincho:

Gracias por la aportación.

También algunos controles ha habido cambios: con el control moviebox, para salgo parecido, la propiedad .path, desaparece en gambas3.16 y la cambia por .animation

¿sabes si hay alguna de hacerlo con controles? (yo no lo he conseguido)

Nota:
Con la aplicación que me ha pasado, para resolverlo "rapidamente" lo que he hecho es eliminar el control moviebox y poner una imagen fija..
    ¡Gracias!
#3

(26-04-2021, 09:19)jsbsan escribió:  ¿sabes si hay alguna de hacerlo con controles? (yo no lo he conseguido)

Supongo que podría hacerse algo con las propiedades del control, puesto que al final un control es una clase no?
Si tienes algún ejemplo con moviebox pásame el link y hago un test, porque ahora tengo las dos maquinas virtuales.
Saludos.

1 Saludo.
    ¡Gracias!
#4

(26-04-2021, 09:19)jsbsan escribió:  la propiedad .path, desaparece en gambas3.16 y la cambia por .animation

Bien, estuve investigando las propiedades de las clases en la versión 3.15.2 y la 3.16.0 en el caso de MovieBox es verdad que en el IDE no aparece la propiedad .Path del control, pero en la clase si que esta.
Es decir si creas el control por código o accedes a el mediante Me[Nombredelcontrol] podrías, en principio, asignar la imagen mediante .Path
Saludos

1 Saludo.
    ¡Gracias!
#5

El control Splitter, que como saben es el que reemplaza a HSplit y VSplit, da problemas cuando el proyecto lo abrimos en una versión anterior a la 3.16, tiene lógica que sea así pero el problema es que este tipo de cambios hace que los programas creados con la version 3.16 que incluyan este control, no podrán abrirse en versione de gambas anteriores así que atención antes de migrar todos sus programas.
Saludos.

1 Saludo.
    ¡Gracias!
#6

Eso de tener que adaptar código para ofrecer retro compatibilidad no me gusta nada. Angry

Me paso con el WebView de estru3D y termine sacandolo.

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

(30-04-2021, 16:18)tercoide escribió:  Eso de tener que adaptar código para ofrecer retro compatibilidad no me gusta nada.

Si, a mi tampoco me gusta.
Ademas, creo, no seria muy complicado realizar una función que guarde el proyecto a una versión anterior arbitraria de gambas. La cosa pasaría por leer cad archivo de código o formulario y verificar ciertas cosas conocidas.
Si se pueden guardar planillas de calculo o diagramas en versiones anteriores a la actual del programa, por que no se va a poder hacer en gambas?
Es una buena idea para un programa no? voy a ver si hago algo al respecto.

(30-04-2021, 16:18)tercoide escribió:  Me paso con el WebView de estru3D y termine sacandolo.

Supongo que eso ya no sera un problema a partir de la 3.16 porque ya podes poner el componente gb.gui.webview que intercambia automáticamente entre el de QT y el de GTK
Saludos.

1 Saludo.
    ¡Gracias!
#8

Hola, encontré esta página que da algunos consejos para retro compatibilidad
http://gambaswiki.org/wiki/doc/compat?l=es#t1
Saludos.

1 Saludo.
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)