Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicación en Delphi5 colgada en WinXP!! (https://www.clubdelphi.com/foros/showthread.php?t=18100)

Killo 01-02-2005 16:14:04

Aplicación en Delphi5 colgada en WinXP!!
 
Hola a todos.



Tengo un “problemilla” que os comento a continuación a ver si podéis ayudarme.



La aplicación con la que tengo problemas es un programa de presentación de datos en pantalla que utiliza un timer de 1 segundo para actualización de datos, una base de datos de tipo estándar con driver PARADOX y se comunica a través de la RS232 con unos equipos externos de los que toma la información a presentar en pantalla.

La aplicación se compila en un PC bajo XP con Delphi 5. En este PC (pc1) y bajo el entorno de desarrollo, la aplicación corre bien hasta un determinado momento en que se queda totalmente colgada no diciendo nada el depurador acerca del error. Si la aplicación la ejecuto en este PC pero fuera del entorno de desarrollo, hace lo mismo.



Hasta hace unos días, cuando instalaba la aplicación en otro PC (pc2) sin Delphi, esta funcionaba estupendamente. Así estuvo dos semanas hasta que de repente se quedo colgada. A partir de aquí los síntomas son peores que en el pc1 ya que nada más entrar en la aplicación ya aparece totalmente colgada.

He intentado de todo en el pc2: actualizar el IDAPI de la BDE, desinstalar y volver a instalar la aplicación de la forma normal y de la forma no habitual (borrar las entradas del registro de windows correspondientes a la aplicación, eliminar carpetas y su contenido del BDE, etc, etc). Y todo sigue igual.



Esta aplicación siempre ha funcionado en W95 perfectamente sin detectarse problema alguno.


Es raro pero no se que puede haber pasado. En un principio pense en problemas de incompatibilidad entre Delphi5 y WinXP o entre este y mi aplicación. Pero cuando vi que funcionaba bien en el pc2 pense en algún problema sin importancia en la configuración del pc1. Pero ahora .....:confused: :confused: :confused:.

Saludos y gracias de antemano por vuestra colaboración.

ErKillo

kike 01-02-2005 17:37:11

Puede que el timer se este ejecutando mas de una vez simultaneamente.
Prueba a deshabilitar el timer durante su ejecución y habilitarlo cuando finalice.
on timer.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := false;
Try
.
.
Finally
Timer1.Enabled := True;
end;
end;

Killo 02-02-2005 08:51:40

Eso ya lo probe pero nada de nada. Siguio igual.

Gracias de todos modos.

<Sergio> 02-02-2005 19:51:21

Esta muy feo, como el depurador no te ayuda tienes que llenar tu aplicación de todo tipo de controles, contadores, etc para que te avisen en todo momento que está pasando, cuantas veces llamas al timer, accesos a disco duro, inicio/fin de comunicación serial, contador de creación/destrucción de objetos, etc (Mejor llenar un archivo .txt con una especie de log de todo lo que pasa). Monitorea el consumo de memoria, cpu, etc. Verifica abrir archivos en modo de solo lectura si no los modificarás, recuerda como se comporta el xp en esos casos.

Killo 15-02-2005 08:41:59

:)Solucionadooooooo:) . El problema venia derivado por la llamada a la función SetCommMask() desde una función llamada desde el Timer y desde otra llamada desde el hilo de comunicación. Típico pero invisible al estar dentro de funciones llamadas dentro de otras y cuya llamada depende de la coincidencia en el tiempo. Una pena de que el Debugger no sea capaz de informarte de ello.

Saludos.


La franja horaria es GMT +2. Ahora son las 12:26:48.

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