Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-03-2011
Sergio J. Sergio J. is offline
Miembro
 
Registrado: may 2003
Ubicación: Andalucía (España)
Posts: 97
Poder: 21
Sergio J. Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 30-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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;
Responder Con Cita
  #3  
Antiguo 30-03-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
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!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 31-03-2011
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 484
Poder: 17
Neeruu Va por buen camino
Cool 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!!!
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #5  
Antiguo 31-03-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 18
Chris Va por buen camino
Cita:
Empezado por Neeruu Ver Mensaje
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 Ver Mensaje
- Si no pongo nada en el archivo con que directivas toma el compilador?
Nuevamente, las predeterminadas de Delphi.
Cita:
Empezado por Neeruu Ver Mensaje
- 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
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 31-03-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por Neeruu Ver Mensaje
- 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.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 31-03-2011 a las 01:36:57.
Responder Con Cita
  #7  
Antiguo 31-03-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ecfisa Ver Mensaje
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
Responder Con Cita
  #8  
Antiguo 31-03-2011
Sergio J. Sergio J. is offline
Miembro
 
Registrado: may 2003
Ubicación: Andalucía (España)
Posts: 97
Poder: 21
Sergio J. Va por buen camino
Cita:
Empezado por Chris Ver Mensaje
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
consulta sobre {$ifdef} and {$define} Enan0 Varios 7 10-12-2015 02:34:56
directivas de grupo gri Redes 0 27-01-2011 11:00:33
Directivas de compilación Livey Varios 0 22-09-2010 00:03:51
¿Directivas compilacion? drykea Varios 1 03-05-2007 15:51:15
{$ifdef} pab4146 API de Windows 2 17-02-2005 19:08:08


La franja horaria es GMT +2. Ahora son las 15:14:56.


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
Copyright 1996-2007 Club Delphi