Bien, ya demostrada que era la solución... y para que las cosas no queden en el aire, quiero comentar:
Cita:
Empezado por Delphius
Que yo sepa todas la líneas de código se ejecutan en modo de ejecución, que el compilador en modo de diseño chequee algunas cosas y optimize el código no quiere decir que en modo de diseño se ejecute el código.
|
Delphius:
Cuándo programas componentes, estos se compilan en un paquete (bpl) y se integran al IDE. De esta manera, tu código si que se ejecuta en tiempo de diseño. Es muy común, cuándo estas en esta tarea, que el código que da comportamiento a un componente resulte innecesario y a veces hasta nocivo cuándo se ejecuta en tiempo de diseño.
De hecho, en ciertos métodos, he llegado a iniciar con:
Código Delphi
[-]
if (csDesigning in ComponentState) then Exit;
Para que nada de esto se ejecute en tiempo de diseño. El que me viene en mente ahora, por ejemplo, es uno que reasigna los eventos de un DataSet..
Hacer eso en tiempo de diseño resultaría perjudicial para la aplicación, pero en tiempo de corrida, creeme, es perfecto.
Así, el programador de componentes y de manera mas general, el programador bibliotecario, cuyo usuario es otro programador y que muchas veces se ve en la necesidad de interactuar con el IDE de delphi o con las aplicaciones en tiempo de diseño debe tener en cuenta estas cosas.
Hasta luego.