Diretivas preprocessadas são avaliadas apenas em tempo de execução, isso é, sua sintaxe e conteúdo são validados apenas quando solicitados sob uma condição válida. Foi implementada a partir da versão 7 do Progress. Exemplo &scoped-define campos cust-num name. &if substring(proversion, 1, 1) = '8' &then for each customer fields({&campos}) no-lock: display {&campos} with title 'Progress versao >= 8'. end. &else for each customer no-lock: display cust-num name with title 'Progress versao <= 7'. end. &endif. No exemplo acima é verificada a versão do Run-Time Progress para execução de uma sintaxe condiciona. Caso a versão seja 8 são informadas cláusulas válidas para esta versão, caso contrário somente instruções válidas para as versões inferiores à 8.