Page 1 of 1

me estoy volviendo loco ;-(

PostPosted: Sat Aug 30, 2008 11:28 pm
by Loren
Compañeros:

Tengo un aplicativo funcionando perfectamente con varias DBF y utilizando la clase TWBROWSE para mostrar datos mediantes listbox. Hasta aquí todo perfecto.

Ahora le he añadido un nuevo PRG (ix.prg) muy simple:

funct ix
msginfo('modulo en construccion')
return

Compila perfecto pero ahora los listbox no me los muestra bien, ocultando todos los registros excepto donde está el foco. Quito el PRG y vuelve a funcionar perfecto.
Revise las DBF y regeneré los NTX... el problema está en el nuevo PRG que añado.
¿ Como es posible ? ¿ Que relación guarda un nuevo PRG con los listbox ?

Mil gracias.
LORENZO.

PostPosted: Sat Aug 30, 2008 11:41 pm
by Ricardo Ramirez E.
:)
Loren....
quizas este link te sirva me.. yo tenia problemas.. con la TDBCombo...
http://www.fivetechsoft.com/forums/viewtopic.php?t=11919&highlight=relacion

prueba cambiando el nombre y/o el orden de compilado de los archivos de código fuente :)

Saludos.....y suerte :)
Ricardo Ramírez!

PostPosted: Sat Aug 30, 2008 11:47 pm
by TecniSoftware
Las brujas no existen, pero que las hay, las hay.

Yo una vez tuve problemas con algo similar y con el nombre de una dbf y te entiendo, uno se vuelve loco por que no tiene lógica al final haciendo un par de cambios en los nombres, todo volvio a funcionar ok.
Creer o reventar!

Saludos!

PostPosted: Sat Aug 30, 2008 11:57 pm
by Willi Quintana
Holas.
Copia tus datos a otra dbf que sea nueva..

Salu2

Re: me estoy volviendo loco ;-(

PostPosted: Sun Aug 31, 2008 2:40 am
by FranciscoA
Loren wrote:Compañeros:

Tengo un aplicativo funcionando perfectamente con varias DBF y utilizando la clase TWBROWSE para mostrar datos mediantes listbox. Hasta aquí todo perfecto.

Ahora le he añadido un nuevo PRG (ix.prg) muy simple:

funct ix
msginfo('modulo en construccion')
return

Compila perfecto pero ahora los listbox no me los muestra bien, ocultando todos los registros excepto donde está el foco. Quito el PRG y vuelve a funcionar perfecto. Revise las DBF y regeneré los NTX... el problema está en el nuevo PRG que añado.
¿ Como es posible ? ¿ Que relación guarda un nuevo PRG con los listbox ?

Mil gracias.
LORENZO.


Lo unico raro que observo es que tu ejemplo de la Funct ix no retorna ningun valor, y por lo tanto al compilar debería mostrarse el error. Prueba asi: Return Msginfo("modulo en construccion"), ademas de encerrar entre paréntesis asi Function ix()


Loren: Probé tu código exactamente como lo muestras, agregando un prg con el nombre ix y la funcion ix desde una ventana twibrowse, y funciona perfectamente en mi equipo. Claro que al compiar muestra la advertencia de que la funcion no retorna ningun valor. Como dicen por ahí: ¿brujería?

PostPosted: Sun Aug 31, 2008 6:57 am
by Antonio Linares
Lorenzo,

Si usas xHarbour, prueba a compilar con Harbour, ó viceversa. Si se trata de un bug del compilador, probar con el otro es una manera de comprobarlo.

Normalmente este tipo de errores esta relacionado con la tabla de símbolos general que tanto Harbour como xHarbour construyen, mantienen y usan internamente, al ejecutar un EXE. Dicha tabla de símbolos se maneja con un algoritmo de búsqueda dicotómica (la mitad de la mitad de la mitad de la mitad, etc... hasta encontrarlo. Es un sistema muy rápido y efectivo. Como ejercicio, prueba a doblar un papel por su mitad, una y otra vez, y verás como solo puedes hacerlo unas pocas veces)

http://es.wikipedia.org/wiki/B%C3%BAsqu ... %C3%B3mica

Cuando el EXE arranca, una de las primeras cosas que la maquina virtual hace, es construir dicha tabla (usando la búsqueda dicotómica), usando las tablas locales de cada OBJ, y asi tener una única y global para todo el EXE. Un sólo PRG que aporte un nuevo símbolo puede ser suficiente para evidenciar un posible bug.

PostPosted: Sun Aug 31, 2008 12:26 pm
by Loren
Sres, la informática cada día me sorprende más.

He detectado el error!!! despues de casi 4 dias.

Recordé que para hacer las modificaciones migré hace 4 dias el proyecto a otra carpeta con nombre superior a 8 digitos ("ALQUIWIN1"). Haciendo miles de cambios y modificaciones sugeridas por vosotros, se me ocurre de renombrar la carpeta con nombre inferior a 8 digitos ("ALQUI") y "et voilá".

Todo perfecto.... los listbox y los dbcombo se muestran perfectamente se le añada o nó más funciones. ¿ Como es posible ? ¿ Que relacion guarda una cosa con otra ? Son misterios de la informática... pero al menos salí del paso.

Mil gracias a todos por todo
Un saludo.

PostPosted: Sun Aug 31, 2008 10:40 pm
by Antonio Linares
Loren,

Revisa en que partes de tu aplicación usas "ALQUI...".

Alguna relación tiene que haber... :-)

PostPosted: Mon Sep 01, 2008 2:15 pm
by RenOmaS
Hola
Pues creo que eso es un "misterio sin resolver"

Tenias esos problemas ya hace mucho tiempo.

Una de las cosas que revise primero es el fichero MAP que se crear al linkar la aplicacion.. es aqui que ten indica como se construye tu exe, y de que fuentes esta a recoger las funciones.
Te recomiendo compara el fichero MAP
e de antes con el misterio.
y el de ahora con la solucion.

Se encuentras diferencias, deves revisar tu proceso de linkeo.
Hay algunos que no le alcanza "el buffer de la memoria" ;)
es decir que existe diferencia entre

c:\miproyecto\con nombre grande\y mas nombres\programa.obj

y

c:\obj\programa.obj

te imaginas si tienes 100 prgs... y sus objs. cual es la diferencia.

Vuelvo a repetir eso depende de como "linkeas" tu exe.


Saludos.