Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   con breakpoint ejecuta y sin el no lo ejecuta. (https://www.clubdelphi.com/foros/showthread.php?t=51458)

pacuuy 16-12-2007 14:14:41

con breakpoint ejecuta y sin el no lo ejecuta.
 
Estimados, como estan?, me uno al clubdelphi.com en el día de hoy, es un placer leerlos y ver que cuentan con vasta experiencia en el lenguaje, voy a aprender muchisimo con ustedes y desde ya les agradezco sus respuestas.

Me esta sucediendo que tengo una aplicación que debe realizar un llamado a una .dll externa, en la línea donde realiza el llamado se le pasan parámetros a la rutina de esa .dll. Sería algo así:

A3022.ProgramAngle(1,1,AnguloBinario);

El problema consiste que el Delphi 5 me ejecuta esta línea únicamente cuando lo ejecuto paso a paso, con el F7 y he puesto un breakpoint en la línea anterior o en ella misma. Si quito el breakpoint y lo ejecuto con F9 directamente no hace nada, no ejecuta la línea, me doy cuenta porque la salida de la tarjeta A3022 no cambia de voltajes... (esta A3022 es una tarjeta PCI que "escribe" voltajes en sus conectores basado en los angulos que le paso por parametros... no puedo decir para que se usa :D )

En definitiva, si lo ejecuto desde el .exe o con F9 sin breakpoints no hace nada, pasa de largo por esa línea, pero si lo ejecuta con un breakpoint ahí o en la línea anterior y debuggeando con F7. Quiero que la línea se ejecute en modo normal y no solo en debugging :), ¿alguien me puede ayudar?

¿Me falta alguna directiva en el compilador? ya probe haciendo un BUILD ALL del proyecto pero sigue el problema.

Saludos y gracias.

Pacuuy

seoane 16-12-2007 14:41:43

Se me ocurre que el problema puede ser de tiempo, me explico, la instrucción se ejecuta tanto si se ejecuta normalmente como si se hace paso a paso, pero cuando lo haces paso a paso entre cada instrucción transcurre un tiempo considerable (como mínimo unos cuantos milisegundos, o incluso algunos segundo dependiendo del tiempo que tardes en pulsar F7). A lo mejor la tarjeta necesita de ese tiempo extra para funcionar.

Prueba colocando unos pequeños tiempos de espera antes y después de la instrucción:
Código Delphi [-]
Sleep(500);
A3022.ProgramAngle(1,1,AnguloBinario);
Sleep(500);


La franja horaria es GMT +2. Ahora son las 15:37:30.

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