Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Directivas compilación {$IFDEF...}..{$ELSE}.. (https://www.clubdelphi.com/foros/showthread.php?t=73083)

Sergio J. 30-03-2011 19:27:30

Directivas compilación {$IFDEF...}..{$ELSE}..
 
Saludos a la sala:
He leido y utilizado las directivas de compilación en Delphi6 para dos casos posibles, es decir, que estaba definida o no una variable de compilación. Hasta ahora bien, sin embargo la cosa se me ha complicado cuando quiero discernir entre varias opciones. Me gustaría que funcionara esto:
Código Delphi [-]
{$IFDEF OPCION1}
...código1
{$ELSE}
{$IFDEF OPCION2}
...código2
{$ELSE}
...código3
...pero la lástima es que no funciona.
Quiero que según si están disponibles o no varias variables, que ejecute determinado código, y si no existe ninguna, que ejecute otro.

He estado buscando pero no encuentro nada, si alguien me quiere ayudar...

Gracias y un saludo

Sergio

Casimiro Notevi 30-03-2011 22:22:01

Echa un vistazo a esta página.

Código Delphi [-]
var
  text : string;

 begin
  // Set our code into test mode
  {$Define TESTMODE}

  text := 'We are in test mode';

  // Display the value of text if we are in test mode
  {$IfDef TESTMODE}
  ShowMessage('text = '+text);
  {$EndIf}

  // Switch off test mode
  {$UnDef TESTMODE}

  text := 'We are out of test mode';

  // Display the value of text if we are in test mode
  {$IfDef TESTMODE}
  ShowMessage('text = '+text);
  {$EndIf}
 end;

Código Delphi [-]
begin
  // Set our code into dangerous mode
  {$Define DANGERMODE}

  // Are we out of danger?
  {$IfNDef DANGERMODE}
  ShowMessage('We are out danger at present');
  {$Else}
  ShowMessage('We are in danger mode!');
  {$EndIf}

  // Switch off danger mode
  {$UnDef DANGERMODE}
end;

Chris 30-03-2011 22:35:11

Lo que buscas es algo así como:
Código Delphi [-]
{$IF Defined(OPCION1)}
...código1
{$ELSEIF Defined(Opcion2)}
...código2
{$ELSE}
...código3
{$IFEND}

Espero haberte podido ayudar. Saludos!

Neeruu 30-03-2011 23:43:09

Directivas de Compilacion
 
Hola a todos!!!

Quería consultar algo sobres las directivas de compilación...

Vi que por los general en los archivos INC se agrega estas lineas al comienzo del archivo...
Entiendo que son las directivas de compilación.

{$B-} { Complete Boolean Evaluation }
{$R-} { Range-Checking }
{$T-} { Typed @ operator }
{$X+} { Extended syntax }
{$P+} { Open string params }
{$J+} { Writeable structured consts }
{$H+} { Use long strings by default }
{$Q-} { Overflow checking }

Ahora mi consulta es:
- Como se que configuración tiene delphi en ese momento?
- Si no pongo nada en el archivo con que directivas toma el compilador?
- Quiero que el código etiquetado se compile con las mismas directivas que el resto de mi aplicación, como se que directivas definir???


Si alguien me puede guiar, explicar o decirme de donde puedo leer algo se lo agradeceré...

PD: Trabajo con Delphi 2010.

Saluda Atte Neeruu!!! :)

Chris 31-03-2011 00:09:28

Cita:

Empezado por Neeruu (Mensaje 395160)
Ahora mi consulta es:
- Como se que configuración tiene delphi en ese momento?

Siempre las predeterminadas de Delphi. En la ayuda puedes encontrar mucha información al respecto.
Cita:

Empezado por Neeruu (Mensaje 395160)
- Si no pongo nada en el archivo con que directivas toma el compilador?

Nuevamente, las predeterminadas de Delphi.
Cita:

Empezado por Neeruu (Mensaje 395160)
- Quiero que el código etiquetado se compile con las mismas directivas que el resto de mi aplicación, como se que directivas definir???

Si no especificas una directiva en específico para cierta parte de tu código, entonces toda la aplicación será compilada con las mismas directivas. La directiva más común que he visto y uso, es la {$B+/-} para en los casos muy específicos que se requiere de una completa comparación boleana.

Por otra, no es necesario un archivo *.inc (realmente la extensión no importa mientras sea un archivo de texto). Pero sin embargo, tener un archivo separado ayuda a la organización. En las opciones de proyecto también puedes definir directivas globales que se utilizarán automáticamente en toda la aplicación. Además, las mismas opciones de compilación son por sí mismas directivas de compilación que se activadan para todo el proyecto y no para partes en específico de código como ocurre al incluir directivas mezcladas con el código.

Saludos,
Chris

ecfisa 31-03-2011 00:32:49

Cita:

Empezado por Neeruu (Mensaje 395160)
- Como se que configuración tiene delphi en ese momento?
- Si no pongo nada en el archivo con que directivas toma el compilador?

Hola Neeruu.

En la ventana de edición, presioná Ctrl+O O. (Control + 2 veces 'o')

Un saludo.

Casimiro Notevi 31-03-2011 01:04:26

Cita:

Empezado por ecfisa (Mensaje 395172)
Hola Neeruu.
En la ventana de edición, presioná Ctrl+O O. (Control + 2 veces 'o')
Un saludo.

Con eso ya tiene para una buena temporada de investigación :)

Sergio J. 31-03-2011 09:33:25

Cita:

Empezado por Chris (Mensaje 395146)
Lo que buscas es algo así como:
Código Delphi [-]
{$IF Defined(OPCION1)}
...código1
{$ELSEIF Defined(Opcion2)}
...código2
{$ELSE}
...código3
{$IFEND}

Espero haberte podido ayudar. Saludos!

Efectivamente me has ayudado mucho, ya que funciona como yo quería. Gracias Chris.


La franja horaria es GMT +2. Ahora son las 17:22:18.

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