![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Ejecución de cógido solo en IDE
Cuando estoy en un entorno de desarrollo uso la directiva {$DEFINE DEBUG} para
habilitar ciertas partes del código y en el momento de compilar elimino dicha línea para que las partes especiales no sean incluídas. No se si me explico, por las dudas incluyo un ejemplo. Código:
unit ULogin; {$DEFINE DEBUG} ... procedure TfrmLogin.Label1Click(Sender: TObject); begin leUsuario.Text := 'MiUsuario'; leClave.Text := 'MiClave'; end; procedure TfrmLogin.FormShow(Sender: TObject); begin {$IFDEF DEBUG} Label1.Visible := True; {$ELSE} Label1.Visible := False; {$ENDIF} end; y contraseña al hacerle un clic. En un entorno de desarrollo la directiva de compilación $DEFINE me habilita el label y en el momento de pasar a producción elimino la directiva para que el label no sea habilitado. A pesar de que el usuario MiUsuario con clave MiClave no existen en el entorno de producción no es deseable que por un olvido al compilar los usuarios finales accedan a esta funcionalidad. Mi pregunta es, ¿conocen alguna forma más flexible para que cierta porción de código solo se encuentre disponible dentro del IDE y desaparezca una vez compilada la aplicación? Gracias por todo.
__________________
"Fools are the only folks on earth who can absolutely count on getting what they deserve" S.K. |
#2
|
||||
|
||||
Cita:
Primero quiero aclararte que no me parece una práctica muy prolija que digamos, igualmente se me ocurre, solución súper básica, que es hacer algo como:
Y tener definido en el ini ese valor de parámetro, si te olvidas de compilarlo de otra forma, te darás cuenta en cuanto lo instales, por los mismos usuarios!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#3
|
||||
|
||||
Hola,
Se me ocurre que puedes definir la directiva "DEBUG" a nivel de proyecto: Project > Options > Conditionals. Y que por otro lado, en el archivo "dpr" escribieras algo así: De ese modo, cuando compiles con la directiva "DEBUG" podrás ver un mensaje en donde aparecen los errores y advertencias al compilar, ya sabes. Sería cuestión, esto sí, de estar pendiente del mensaje a la hora de compilar. Claro que no sé hasta qué punto lo que digo tiene que ver con lo que tú hubieras esperado por una respuesta más o menos razonable. El caso es que el tema me parece interesante y no he podido dejar de meter baza, como suele decirse. |
#4
|
||||
|
||||
Me gusta la solución que ofrecés, por lo menos tengo una alerta si me olvido de sacar la porción de código.
De todas formas tiene que haber una forma de especificar que una porción de código solo puede ser usada en el IDE, existe para el uso de packages.
__________________
"Fools are the only folks on earth who can absolutely count on getting what they deserve" S.K. |
#5
|
||||
|
||||
Si puedes averiguar si el IDE esta abierto, si la aplicación se esta debugueando.... pero en ambos casos, tu código de debug estará compilado de todos modos, y que este el IDE abierto o este en modo Debug, no es ninguna garantía de seguridad!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. ![]() |
#6
|
||||
|
||||
Hola,
Cita:
Cita:
¿Cómo puede saber Delphi si el proyecto que acabas de compilar lo usarás para "debugear" o se lo enviarás a un usuario final? Yo creo que no puede saberlo y que para eso, entre otras cosas, tenemos las directivas de compilación. Es cierto que puede olvidársete quitar o poner una directiva de compilación que haga que los resultados (el código compilado) no sean los esperados... pero, me temo que tendrás que estar pendiente de que no ocurra algo así: por ejemplo como te digo más arriba y/o siguiendo la idea de Federico. "Debugear" (mientras se desarrolla) es más o menos habitual, pero, cuando uno compila un proyecto para su posterior distribución ha de estar pendiente de ciertas cosas y una de ellas puede ser justamente la del control de las directivas de compilación. De todos modos podrías comentar lo que dices de los "packages". Gracias. |
#7
|
||||
|
||||
Gracias por todas las aclaraciones, no eran necesarias pero aclaran un poco más esta consulta.
Por uso en el IDE y debuggeando me refiero a ejecutar la aplicación desde el IDE mismo con F7, F8 o F9. Si bien es en definitiva compilada y se trapean los breakpoints y demás, permite al desarrollador un seguimiento de las sentencias que se van ejecutando. Mi consulta, en definitiva, es si existe alguna directiva (opción o cualquier otra cosa) que me permite habilitar una porción de código mientras la aplicación se ejecuta desde el IDE y que, una vez compilada (compiled o built en inglés) ya no se encuentre disponible. Pordón por tantas consultas tan confusas, tal vez no se expresar exactamente lo que necesito.
__________________
"Fools are the only folks on earth who can absolutely count on getting what they deserve" S.K. |
![]() |
|
|
![]() |
|