Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edschneider

Usando a compilação condicional

Recommended Posts

Olá, gostaria de saber como faço para utilizar a compilação condicional no meu form principal para se no project options na opção conditions define estiver uma certa palavra ele adicionar uma unit na clausula uses...

 

estou tentando desta maneira mas não obtive resultado

 

Uses ...

{$IFDEF SC} maskaraSC {$ELSEIF SP} maskaraSP {$ELSE} maskaraRA {$IFEND}

 

 

http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

{$IFDEF SC} maskaraSC {$ELSEIF SP} maskaraSP {$ELSE} maskaraRA {$IFEND}

$ELSEIF e $IFEND são diretivas que não existem no Delphi.

 

Delphi suporta, entre as diretivas de compilação, as seguintes diretivas que são relevantes para seu problema:

[*]$IFDEF

[*]$IFNDEF

[*]$ELSE

[*]$ENDIF

Um jeito de fazer o que você está tentando é:

uses{$IFDEF SC}  maskaraSC   {$DEFINE TEM_MASCARA}{$ENDIF}{$IFDEF SP}  maskaraSP   {$DEFINE TEM_MASCARA}{$ENDIF}{$IFNDEF TEM_MASCARA}  maskaraRA {$ENDIF}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou, http://forum.imasters.com.br/public/style_emoticons/default/cry.gif , o compilador usa sempre a mesma unit, parece não verificar as condições no if, estranho :unsure:

 

Delphi suporta, entre as diretivas de compilação, as seguintes diretivas que são relevantes para seu problema:

[*]$IFDEF

[*]$IFNDEF

[*]$ELSE

[*]$ENDIF

Um jeito de fazer o que você está tentando é:

uses{$IFDEF SC}  maskaraSC   {$DEFINE TEM_MASCARA}{$ENDIF}{$IFDEF SP}  maskaraSP   {$DEFINE TEM_MASCARA}{$ENDIF}{$IFNDEF TEM_MASCARA}  maskaraRA {$ENDIF}

<{POST_SNAPBACK}>

http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou, http://forum.imasters.com.br/public/style_emoticons/default/cry.gif , o compilador usa sempre a mesma unit, parece não verificar as condições no if...

Onde e como você está definindo a constante?

 

Você deveria definir a constante na unit usando um $DEFINE antes do trecho com os $IFDEFs ou no projeto usando Project|Options|Directories/Conditionals no campo Conditional defines.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exatamente, eu estou definindo esta constante como sendo SC, SP outrora RA e gostaria que o compilador pegasse estas units conforme definido nesta conditional defines... mas ele sempre pega a mesma unit...

 

Você deveria definir a constante na unit usando um $DEFINE antes do trecho com os $IFDEFs ou no projeto usando Project|Options|Directories/Conditionals no campo Conditional defines.

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

...eu estou definindo esta constante como sendo SC, SP outrora RA e gostaria que o compilador pegasse estas units conforme definido nesta conditional defines... mas ele sempre pega a mesma unit...

Por exemplo, assim deveria incluir as units MaskaraSC e MaskaraSP, mas não a unit MaskaraRA
unit Demo;{$DEFINE SC}{$DEFINE SP}{$UNDEF RA}uses{$IFDEF SC}  maskaraSC, {$ENDIF}{$IFDEF SP}  maskaraSP, {$ENDIF}{$IFDEF RA}  maskaraRA, {$ENDIF}  SempreIncluiEstaUnit;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok desta ultima maneira aparentemente funcionou, http://forum.imasters.com.br/public/style_emoticons/default/clap.gif , mas pelo project options não tem jeito, sera bug do delphi 6?

 

Obrigado pela Ajuda! Valeuw... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

...eu estou definindo esta constante como sendo SC, SP outrora RA e gostaria que o compilador pegasse estas units conforme definido nesta conditional defines... mas ele sempre pega a mesma unit...

Por exemplo, assim deveria incluir as units MaskaraSC e MaskaraSP, mas não a unit MaskaraRA
unit Demo;{$DEFINE SC}{$DEFINE SP}{$UNDEF RA}uses{$IFDEF SC}  maskaraSC, {$ENDIF}{$IFDEF SP}  maskaraSP, {$ENDIF}{$IFDEF RA}  maskaraRA, {$ENDIF}  SempreIncluiEstaUnit;

<{POST_SNAPBACK}>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.