Problema Con ListBox En Gambas 3 (solucionado)


Objetivo: Problema Con ListBox En Gambas 3 (solucionado)
Migrando código de gambas 2 al 3 me encuentro que al intentar asignar el valor List, se cuelga la aplicación, es decir. No hace nada, no sigue, no levanta errores el ide. Se cuelga como si fuese de windows millenium. Si utilizo el método Add del control, como que tarda la vida para menos de 4000 registros. Estoy probando con sqlite3, pero el motor de datos no es el problema.

El código es más o menos lo siguiente:


Dim aops As New String[]
Dim r As Result

Inc Application.Busy
r = miconexion.consultar("select distinct micampo from mitabla")
milistbox.clear
aops = New String[]
r = thegrid.rslt
While r.Available
milistbox.Add(r!micampo) 'esto tarda la vida entera
'aops.Add(r!micampo) 'esto es rapidisimo
r.MoveNext
Wend
'milistobx.list = aops 'esto, que era rapidísimo en conexión con la línea comentada arriba, cuelga la aplicacion
milistbox.SetFocus
Dec Application.Busy

Catch
Error.Raise(Error.Text)

End


He perdido una tarde en el tema y no encuentro que el control haya sido modificado en sí mismo... ¿o estoy equivocado?

última edición por shordi el Domingo, 13 Enero 2013, 19:57; editado 2 veces
Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3
Hola

En el ejemplo siguiente el resultado es inmediato para 10000 registros. He probado con gb.gtk y con gb.qt4 y no hay diferencia:

Public Sub form_Open()

Dim arr As New String[]
Dim i As Integer

For i = 0 To 10000
Randomize
arr.Add(Rnd(0, 1000000))

Next

ListBox1.List = arr

End


Es decir, parece que asignar un array de string a la propiedad .List de un listbox no es el problema...

Esta es la información del sistema, por si sirve de ayuda (se obtiene desde el menú de gambas "?" a la derecha del todo)

[System]
OperatingSystem=Linux
Kernel=3.2.0-23-generic
Architecture=x86_64
Distribution=Linux Mint 13 Maya
Desktop=GNOME
Theme=QGtk
Language=es_ES.UTF-8
Memory=16034M

[Libraries]
Qt4=libQtCore.so.4.8.1
GStreamer=libgstreamer-0.10.so.0.30.0
GTK+=libgtk-x11-2.0.so.0.2400.10
Poppler=libpoppler.so.19.0.0
SDL=libSDL-1.2.so.0.11.3

Saludos

Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3
Re-reviso el código y te cuento.

Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3
Estoy por rendirme y volver al viejo y querido gambas 2. Me parece que el 3 está muy verde, por lo menos en lo que a depuración de errores se refiere.
Adjunto un extracto de mi proyecto, a ver si alguien puede arrojar alguna luz.
Es un generador de consultas, le das una conexion y te lista la tabla que digas. Cuando pulsas en "Filtro Avanzado" (el embudo con una estrella) se abre un formulario para construir la consulta. Cuando pulsas ahí el botón "Seleccionar valor existente" (el de la lupa) se supone que se tiene que rellenar el listbox que hay debajo, pero, por algún misterio, se cuelga el hijoputa.

La idea de fondo es convertir las clases Xgrid y Conexion en una librería en un futuro... pero esto no es marcha, no...

Ah! la información de mi sistema:
Citar:
[System]
OperatingSystem=Linux
Kernel=3.2.0-35-generic
Architecture=x86_64
Memory=3748824 kB
DistributionVendor=Ubuntu
DistributionRelease="Ubuntu 12.04.1 LTS"
Desktop=Gnome

[gambas 2]
Version=2.23.1
Path=/usr/bin/gbx2

[gambas 3]
Version=3.3.4
Path=/usr/bin/gbx3

[Libraries]
Qt4=libQtCore.so.4.8.1
GTK+=libgtk-x11-2.0.so.0.2400.10


Aquí podéis descargarlo

No seáis muy duros con el código, que está a medio cocer.
Saluds

Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3 (solucionado)
Al final una tontuna, como siempre: Nada de GTK. Utilizar el QT4 y funciona perfecto.
Vaya mierda de pérdida de tiempo.


Seguiremos en la lucha...

Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3
shordi escribió: [Ver mensaje]
Estoy por rendirme y volver al viejo y querido gambas 2. Me parece que el 3 está muy verde


Baaaahhh!! Ni hablar!

Aunque no lo he podido probar porque no adjuntas la base de datos con datos de prueba, me gustaría comentar contigo el significado de la línea 195 de fFiltro.class porque me chirría bastante:


r = hc.exec("select distinct " & comillas(campo1.text) & " from " & thegrid.tabla, True & " order by " & comillas(campo1.Text), True)


Lo primero veo que has creado una función para las comillas de las cadenas, cuando eso se puede gestionar usando los argumentos de sustitución y los comodines &1..&n.

Segundo, no entiendo los "True" después de la coma, que en realidad el método Exec los está entendiendo como argumentos de sustitución. Además luego continúa la sentencia sql, lo que por supuesto está mal bajo mi punto de vista.

Creo que por ahí puedan venir los problemas, aunque gambas no se queje (la consulta está mal, pero gambas no lo sabe porque no hay error sintáctico ni el motor sql tampoco).

Saludos

Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3 (solucionado)
Esa línea es el fruto de quita-prueba-pon mil veces. En realidad en el original se usaba el método "consultar" de la calse Conexion, que tiene un segundo parámetro booleano, sobre si la consulta es segura o no (en la aplicación original donde desarrollé esa clase había ocasiones en que el usuario puede modificar una sentencia sql ) y para evitar sustos, se rechaza toda consulta que incorpore palabras "de acción" (drop, delete, etc.). Tanto copiar y pegar que la burra se fué al monte.

En realidad el código real no utiliza esa línea, utiliza la que ahora viene comentada como:
' r = thegrid.rslt


Donde no se crea un result nuevo, sino que utilizamos el que ya tenemos en el objeto xGrid.

Como no sabía si el problema era de la clase Conexion, pues empecé a comentar, modificar, copiar y pegar a tutiplén... colándoseme el resultado éste.

Aún así no terminan mis problemas. Abro otro hilo con lo que me hace el QT4, que parecen problemas distintos.

Perfil MP  
Objetivo: Re: Problema Con ListBox En Gambas 3 (solucionado)
Me autocito:
"En realidad el código real no..."
Si mis profesores de Lengua levantaran la cabeza... (la mayoría creo que está en el otro mundo).

Perfil MP  

Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.3598s (PHP: -80% SQL: 180%)
Consultas SQL: 46 - Debug off - GZIP Activado