Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemas con Delphi, errores extraños (https://www.clubdelphi.com/foros/showthread.php?t=32212)

Delphius 31-05-2006 13:06:10

Problemas con Delphi, errores extraños
 
1 Archivos Adjunto(s)
Disculpen foristas, estoy en un gran aprieto...
La verdad no entiendo porque está reaccionando Delphi de esta manera.
Verán, estoy implementando generadores de numeros pseudoaleatorios, mejor dicho... reimplementando... pues ya los tenía. Lo que hice fue dirigirlos hacia la POO. Todo bien, esta parte esta andando bien.
Pero ahora, cuando se me ha pedido (es una actividad para la facu) que implemente los tests estadísticos (Chi-Cuadrado, Kolmorov-Srmirnov, etc)... bueno... aprovechando que estaba en OO, seguí esta línea... implementé en una unidad (UTest) una clase Ttest, y en otra unidad (mediante herencia) una clase TScuareChi.
Pero resulta que el código (que adjunto) ahora falla: Le dí Run y...
Primero empezó arrojandome un error diciendo que un archivo ???60.??? estaba dañado. La verdad, es que no vi muy bien el nombre... sólo me acuerdo de que tenía el número 60. Y para el colmo no volvió a suceder.

Luego empezó a darme errores del tipo "invalid pointer", que ya fue solucionado.

Bueno, volví a compilar y salió bien, pero en cuanto presioné en el botón me arrojó un error que dice: "Generator generó un error en GENERATOR.EXE. Generator se cerrará" (tal como lo hace ahora)...

Pero si encierro en comentarios (en el programa principal) lo que dice:
Código Delphi [-]
Edit1.Text := FloatToStr(chi);

Sigue el curso sin ningún problema.
Vi el event log, y aparece lo siguiente:
Código:

Thread Start: Thread ID: $FFE361D5. Process Generator.exe ($FFE64C99)
Process Start: C:\No borrar\mis cosas\textos\Imperio\Universidad\Modelos y Simulación\Generador\Nuevo Generadores\Generator.exe. Base Address: $00400000. Process Generator.exe ($FFE64C99)
Module Load: Generator.exe. Has Debug Info. Base Address: $00400000. Process Generator.exe ($FFE64C99)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $BFB70000. Process Generator.exe ($FFE64C99)
Module Load: ole32.dll. No Debug Info. Base Address: $7FF20000. Process Generator.exe ($FFE64C99)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $7FE80000. Process Generator.exe ($FFE64C99)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $BFE60000. Process Generator.exe ($FFE64C99)
Module Load: GDI32.dll. No Debug Info. Base Address: $BFF10000. Process Generator.exe ($FFE64C99)
Module Load: USER32.dll. No Debug Info. Base Address: $BFF40000. Process Generator.exe ($FFE64C99)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $BFF60000. Process Generator.exe ($FFE64C99)
Module Load: MSCTF.dll. No Debug Info. Base Address: $60000000. Process Generator.exe ($FFE64C99)
Module Load: VERSION.dll. No Debug Info. Base Address: $BFE50000. Process Generator.exe ($FFE64C99)
Module Load: UNKNOWN_MODULE_14. No Debug Info. Base Address: $10000000. Process Generator.exe ($FFE64C99)

Me llama la atención esta última línea: Module Load: UNKNOWN_MODULE_14...

Me temía una falla (ya antes de todos esos errores) ya cuando quise acceder a una propiedad de la clase TScuareChi, y no podía. Ponía el punto y entre la lista para seleccionarla no figuraba ninguna de ésta... sólo las de la clase padre... no le di mucha importancia... le dí el valor dentro de su implementación. (para que cuando encontrara la falla, lo solucionara). Fue allí cuando di el Run, y empezó la odisea anteriormente detallada.

No se que está pasando... en teoría debería funcionar. ¿Será por ese archivo...? Estaba pensando, por el miedo de que esto haga que otros aplicativos empiezen a fallar, reinstalar Delphi. Pero quisiera tratar de evitarme esto. También estuve pensando si será mi código el del problema.... pero no veo que puede ser.
Adjunto el código... por si alguna mente entrenada encuentra mi falla, le estaría muy agradecido si pudieran ayudarme.

Muchas gracias, a toda persona que haya dedicado un poco de su tiempo para leer este hilo,

Emilio 31-05-2006 13:11:25

Revisa la versión de tu comctl32.dll

Sería interesante que ofrecieses el entorno en el que te falla, al igual que en el que no te fallaba anteriormente.

Delphius 31-05-2006 13:32:55

Pues, me encontré con dos dll...
 
Pues, como dices Emilio, me fijé en la versión y ¡Sorpresa!... hay dos:
Versión 1:
4.70.0.1146
Tamaño: 370 KB
Creado y Modificado: Martes, 15 de Octubre de 1996, 10:40:38 a.m.
Descripción: Custom Controls Library
Descripción de versión: 4.70
Ubicación: C:\Archivos de programa\Borland Delphi Personal Installer\INFO\Extras\Win95 Support

Versión 2:
5.81.4916.400
Tamaño: 535 KB
Creado y Modificado: Viernes, 30 de Agosto de 2002, 06:44:34 p.m.
Descripción: Common Controls Library
Descripción de versión: 5.81
Ubicación: C:\WINDOWS\SYSTEM

¿Una por lo menos, estará fallando?

La unica prueba y entorno en donde no fallaba y que ahora falla es en el código que adjunté... no hice nada fuera de lo que expuse anteriormente. No me animé a probar desarrollando un nuevo proyecto por temor a que el fallo sea genérico y termine haciendo que todos mis aplicativos fallen.

Emilio 31-05-2006 14:07:08

Yo tengo otras versiones en mi máquina

5.82.2900.2180 en c:\windows\system32
6.00.2900.2180 en C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9

Que tal si te pegas una vuelta por http://windowsupdate.microsoft.com y luego nos dices que tal

Robert01 31-05-2006 14:07:22

Una pregunta: ¿que versión de delphi estás usando?

yo algunas veces he tenido mensajes de error en delphi con un archivo con 60 pero no recuerdo cual.

dec 31-05-2006 14:14:14

Hola,

Cita:

Empezado por Delphius
No me animé a probar desarrollando un nuevo proyecto por temor a que el fallo sea genérico y termine haciendo que todos mis aplicativos fallen.

Bueno, pero, una cosa es ponerte con un proyecto en los que estés trabajando y otra crear un nuevo proyecto a modo de prueba, únicamente, para ver si Delphi se comporta como se espera de él. ¿No? Por cierto, estoy ahora echando un vistazo al código que adjuntaste.

Emilio 31-05-2006 14:15:55

Cita:

Empezado por Emilio
Yo tengo otras versiones en mi máquina

5.82.2900.2180 en c:\windows\system32
6.00.2900.2180 en C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2180_x-ww_a84f1ff9

Que tal si te pegas una vuelta por http://windowsupdate.microsoft.com y luego nos dices que tal

No te molestes en eso, he bajado tu fichero y me da el mismo problema, habrá que ver de que es pero ese ya puedo decirte que no es el problema...

dec 31-05-2006 14:19:27

Hola de nuevo,

Descargé el código fuente que adjuntas y el programa compila con una serie de advertencias, pero, compila, se ejecuta y parece hacer lo que tiene que hacer... O sea, que por mi parte no encuentro el error de marras. Lo he probado con Delphi 7.1 Enterprise y Windows XP Profesional Service Pack 2, por si sirve de algo, lo digo.

¿O me estoy perdiendo algo?

Emilio 31-05-2006 14:22:41

Cita:

Empezado por dec
Lo he probado con Delphi 7.1 Enterprise y Windows XP Profesional Service Pack 2, por si sirve de algo, lo digo.

Yo he probado con Delphi 6 y casca, a ver si van por ahí los tiros.

seoane 31-05-2006 14:27:36

Yo lo he probado y al principio me decia que no encontraba una serie de archivos pero modifique las rutas en el dpr y me compilo y se ejecuta bien (no da ningun error).

A lo mejor digo una tonteria pero me he fijado que en las rutas de las units tienes lo siguiente:

Código:

UNotCongruential in '..\..\..\..\..\..\Unidades, DLL, paquetes\GNA\UNotCongruential.pas'
El problema no puede estar en el nombre del directorio con comas y demas ???

Por cierto, por si te sirve, yo tengo delphi7 con WindowsXP SP2

Delphius 31-05-2006 14:33:43

Cita:

Empezado por Emilio
Yo he probado con Delphi 6 y casca, a ver si van por ahí los tiros.

Puede ser,.... yo dispongo de Delphi 6, y Windows Me (se que es un pecado decir que tengo este SO... pero los recursos de mi máquina no dan para más).
Aunque, debo decir que he realizado trabajos en grupo en Delphi 6 y XP (con el pack 2 incluido) y nunca tuve problemas con los "traspasos".

Seguiré investigando....

Edito:
Cita:

Empezado por seoane
El problema no puede estar en el nombre del directorio con comas y demas ???

No lo creo.... en ese directorio siempre he guardado todos mis "módulos", y nunca me dieron problemas.... ¿Será que recién ahora...se le ocurren salir?
Veras yo guardo allí todo lo que vea que pueda reutilizar... y por algo estoy llevando esto en POO. Para el final (que gracias a dios es para fin de año) debo implementar un buen simulador...

¡Espero solucionarlo!
Muchísimas gracias por tomarse un tiempo en esto.... gracias Emilio,seoane,Dec

dec 31-05-2006 14:34:46

Hola,

Cita:

Empezado por Seoane
El problema no puede estar en el nombre del directorio con comas y demas ???

Yo tuve que hacer lo mismo con lo que dices de cambiar las rutas a las unidades en el archivo de proyecto. Lo que no se me ocurrió y me parece digno de consideración (ahora que lo dices) es el hecho de que esas rutas, esos nombres de directorios, pudieran estar influyendo en algo...

No sé. Pareciera que el problema tendría que mostrarse de otro modo, pero, de todos modos, tal vez esos nombres de directorios pudieran causar otro tipo de inconvenientes. Ojo, que no estoy diciendo que Delphius tenga que nombrar sus directorios de ningún modo en especial.

Pero sí se me ocurre que el propio Delphius compruebe en su ordenador si el programa compila y funciona tal y como lo hemos probado nosotros, es decir, situando todas las unidades necesarias en el directorio del archivo de proyecto. ¡Y a ver si va a tener algo que ver la versión de Delphi, en cuyo caso habría que entrar en la implementación de las clases implicadas! ¿No?

dec 31-05-2006 14:37:27

Hola,

Cita:

Empezado por Delphius
(...) se que es un pecado decir que tengo este SO... pero los recursos de mi máquina no dan para más (...)

¿Seguro? Quiero decir, ¿lo probaste? Yo he estado utilizando hasta hace poco Windows XP SP2 con 128 MB de memoria RAM (ahora tengo 256, no es que sea mucho a día de hoy) y un procesador AMD a 1000 Mhz.

Claro que tenía quitados todos los "efectos especiales" de Windows XP, pero, esos los tengo quitados también ahora: no me convencen y se comen unos recursos que ni a ti ni a mí nos sobran.

Delphius 31-05-2006 15:54:33

Sigo probrando...
 
Cita:

Empezado por Dec
Pero sí se me ocurre que el propio Delphius compruebe en su ordenador si el programa compila y funciona tal y como lo hemos probado nosotros, es decir, situando todas las unidades necesarias en el directorio del archivo de proyecto. ¡Y a ver si va a tener algo que ver la versión de Delphi, en cuyo caso habría que entrar en la implementación de las clases implicadas! ¿No?

Pues, acabo de hacer eso... coloque todas la unidades en el directorio del proyecto (que por cierto no tiene ninguna nomeclatura rara) ...y... si el error sigue. Compila, si, lo hace... pero en cuanto presiono el botón emite el famoso error Generator ha provocado un error en Generator.exe.

Seguí haciendo pruebas, y si... me estoy inclinando por lo último: las clases. Hay pequeño problema con UTest y UScuareChi. Según mis últimas pruebas, no se puede leer los valores de la propiedades del TScuareChi (ya algo había comentado cuando inicié el hilo)....
Estuve viendo la implementación y por el momento no he encontrado algo extraño...

Seguiré con esto en otra oportunidad... cuando regrese de la facu.
NOta al margen: ¡Quiero que se acabe... ya toy $%"/&)&%@.... quinto año de m....!
Cita:

Empezado por Dec
¿Seguro? Quiero decir, ¿lo probaste? Yo he estado utilizando hasta hace poco Windows XP SP2 con 128 MB de memoria RAM (ahora tengo 256, no es que sea mucho a día de hoy) y un procesador AMD a 1000 Mhz.

Pues, eso para mi es una buena máquina. ¿Intentarías correr XP en un equipo que posee 333MHz y 128 RAM? ¡Como te digo que duras penas logro tener Delphi 6 y Power Traslator 7.0 cuando trabajo...! Menos mal que en unas semanas me compro un buen equipo (una "recompensa" por haber aguantado 8 meses por la espero del dichoso título que me tenían que dar el año pasado).

dec 31-05-2006 19:32:50

Hola,

Cita:

Empezado por Delphius
Pues, eso para mi es una buena máquina. [refiriéndote a mi des-ordenador]

No te lo decía por tanto, que yo no me quejo... sino para que pudieras tener una referencia. ;)

Cita:

Empezado por Delphius
¿Intentarías correr XP en un equipo que posee 333MHz y 128 RAM?

Reconozco que a lo máximo que he llegado ha sido a correrlo en un AMD 500 Mhz con 128 MB de memoria RAM. ¿Probaste con Windows 2000? Tal vez, no lo sé bien... en algún sitio habrán de estar disponibles los requerimientos mínimos.

En todo caso, veo que me estoy yendo por los cerros de Úbeda...

Robert01 31-05-2006 22:33:05

delphius

El problema en delphi 6 es con inet60.dll y otras librerías. Por lo menos a mi me dió un error allí.

al comentar Edit1.text efectivamente no ocurre el problema.

¿Edit1.text es una string? ¿Porqué da error al usar FloatToStr(chi)?

El problema parece ser con delphi 6 o con delphi 6 y windows XP, el nombre de carpeta no cambia nada, el error sigue.

saludos

Delphius 01-06-2006 03:57:00

Pues... ya estoy crazy!
 
Pues, si... como comentas Robert01, en parte... ese es un error.. algo pasa cuando se quiere hacer FloatToStr()...
Por otro lado, un error que no logro explicar... es porqué no me aparecen las propiedades correspondiente a TScuareChi, ya que sólo aparecen las pertenecientes a su padre (N, y List) TTest. Con los análogos (los generadores) no sucede esto... Por ejemplo al declarar el TMultiplicative logro ver las propiedades de éste de como sus padres...

Es una mezcla de Delphi y código lo que está provocando esto... A mi parecer mi código debería funcionar bien. No encuentro explicación, sinceramente esto me rompe el coco... y... ya se me urge solucionarlo...

Si no logro dar con algo, mañana, voy a probar reinstalando Delphi.

Robert01 01-06-2006 14:17:21

Hola delphius

me interesa la estadística pero no se programar usando objetos, esta es una forma de aprender algunas cosas.
Estuve viendo tu código y probando, me da estos problemas al usar delphi 6:

Código:

[Warning] UGenerators.pas(51): Method 'Generate' hides virtual method of base type 'TGenerator'
[Warning] UGenerators.pas(66): Method 'Generate' hides virtual method of base type 'TGenerator'
[Hint] UCongruential.pas(70): Value assigned to 'TMultiplicative.Generate' never used
[Hint] UCongruential.pas(147): Value assigned to 'TMixer.Generate' never used
[Hint] UNotCongruential.pas(93): Value assigned to 'TCentralScuare.Generate' never used
[Hint] UNotCongruential.pas(154): Value assigned to 'TLehmer.Generate' never used
[Warning] UTest.pas(45): Method 'Destroy' hides virtual method of base type 'TObject'
[Hint] UTest.pas(40): Private symbol 'GetN' declared but never used
[Hint] UScuareChi.pas(104): Value assigned to 'TScuareChi.Test' never used
[Hint] Unit1.pas(36): Variable 'per' is declared but never used in 'TForm1.Button1Click'

En cambio cuando uso crosskylix compila bien y no hay problemas al ejecutarlo, salvo cuando uno hace click por segunda vez en el botón aparece un mensaje de error de windows.

Espero que te ayude en algo

saludos

Delphius 02-06-2006 06:14:49

Problema solucionado
 
Pues, el típico "bosque" no me dejaba ver el "árbol". el principral error radicaba en que tes estaba declarado de tipo Test y no TScuareChi.:p
¿Que habrá pasado con eso del archivo ???60.??? ?Pues la verdad no se. Y hasta que no me pase otra vez no le voy a dar cuerda.:D
Ahora modifiqué algunas propiedades, e implementé el algoritmo Chi-cuadrado de la manera correcta (tenía un pequeño error de concepto).:cool:

Gracias, a todos, por dedicar su valioso tiempo para ayudarme.


La franja horaria es GMT +2. Ahora son las 04:43:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi