Fórum Diretivas de compilação #12459

02/12/2009

0

Olá,   Gostaria de usar multiplas diretivas de compilação para não repetir o codigo. Pesquisei na Internet, mas não achei como fazer isso.   seria algo como   {$IFDEF diretiva1 OR DEBUG1} código1 {$ENDIF}   {$IFDEF diretiva3 OR DEBUG2} código2 {$ENDIF}     Sei que o OR não existe, é que usamos o mesmo .PAS para 2 aplicativos e algumas rotinas só podem ser usadas em um deles.   Outra alternativa para a questão também é bem vinda.   Obrigada   Silvia por gentileza, avisar sobre a resposta para silvia@infosystem.com.br      
Silvia Berezin

Silvia Berezin

Responder

Posts

02/12/2009

Wesley Yamazack

Olá amiga, o que você queria seria algo neste estilo

{$IFDEF MINHA_PRIMEIRA_DIRETIVA}
   {$IFDEF MINHA_SEGUNDA_DIRETIVA}
      {$IFDEF MINHA_TERCEIRA_DIRETIVA}
      {$ENDIF}
   {$ENDIF}
{$ENDIF}

Se for isso esta ai a solução.

Um abraço

Wesley Y
Responder

Gostei + 0

03/12/2009

Silvia Berezin

Olá Wesley,   Infelizmente não deu certo, como é em cascata.  A claúsula OR seria a melhor alternativa, mas nunca vi isso.   Para você entender o que eu preciso:   uses FuncoesGerais, {$IFDEF VDA}
 Fornecedores_IncAlt,uMenuFiscal;
{$ENDIF} {$IFDEF DEBUGVDA}
 Fornecedores_IncAlt,uMenuFiscal;
{$ENDIF} {$IFDEF ADM}
 Fornecedores_IncAlt;
{$ENDIF} {$IFDEF DEBUGADM}
 Fornecedores_IncAlt;
{$ENDIF}     O mesmo .PAS é usado para 2 projetos, porém o projeto ADM não usa a unit uMenuFiscal (não, não posso acrescentar no projeto ADM pois existem mais outras tantas units que teriam que ser acrescentadas também).   Quando estou Debugando preciso da clausula DEBUGADM ou DEBUGVDA, pois utilizamos DLLs de proteção que não permitem debugar, então temos que ter uma diretiva para DEBUGAR e outra para a versão final.   Obrigada pela atenção   Abs   Silvia    
Responder

Gostei + 0

04/12/2009

Wesley Yamazack

Boa noite Silvia,

    Desculpe mas nao entendi muito bem. O código que você me enviou já não resolve o problema ? Pelo que entendi, de acordo com o código postado
o Delphi so compilara as units que voce usa, por exemplo, quando definir ADM a unit uMenuFiscal nao sera compilada, conforme desejado.


Att,

Wesley Y
Responder

Gostei + 0

07/12/2009

Silvia Berezin

Oi Wesley   O código resolve, porém duplica os códigos. Isso que eu queria saber, se existe alguma maneira de não duplicar.   Pelo que pesquisei até agora, acho que do jeito que está seria a única maneira.   Obrigada
Responder

Gostei + 0

07/12/2009

Wesley Yamazack

Olá Silvia, Boa tarde.
  Não terá como fugir disso não, infelizmente, até o momento, em minha visão não teria outra forma.

Um abraço

Wesley Y
Responder

Gostei + 0

18/12/2009

Wesley Yamazack

Olá,
 Podemos fechar o chamado ?

Att,
Wesley Y
Responder

Gostei + 0

22/12/2009

Devmedia

Silvia,
por falta de retorno estamos encerrando o chamado. CASO TENHA DÚVIDAS SOBRE O ASSUNTO AQUI TRATADO, BASTA POSTAR A DUVIDA AQUI MESMO QUE O CONSULTOR VOLTARÁ A LHE ATENDER O SERÁ REABERTO.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar