Como sempre, usarei um exemplo simples para demonstrar o uso de Diretivas de compilação na simplificação de testes, porém existem outras formas de se fazer testes. Vamos lá!
A título de teste, criei uma função chamada "IsNumber", que basicamente verifica se um determinado char recebido como parâmetro é um número, segue a declaração da função:
function IsNumber( loChar: char ): boolean ;
Após isto, no evento "OnClick" de um botão qualquer, faço um teste:
procedure TfrmMain.btnIsNumberClick(Sender: TObject);
begin
showmessage( ifThen( IsNumber( '1' ), 'É um número', 'Não é um número' ) );
end;
// falei sobre ifThen neste post...
Porém existem situações muito mais complexas, que existem muito mais que um input, neste caso, seria muito trabalhoso ficar preenchendo campos e etc...precisamos testar a função o mais rápido possível dependendo do projeto. Para isso, podemos automatizar o teste, condicionando esta operação ao modo como a aplicação está sendo compilada: DEBUG ou RELEASE.
Veja como é a implementação da função "IsNumber":
function TfrmMain.IsNumber(loChar: char): boolean;beginresult := loChar in ['0'..'9'] ;end;
Agora, vou incluir o preenchimento do parâmetro "loChar" dentro da própria função, quando a forma de compilação estiver em DEBUG:
function TfrmMain.IsNumber(loChar: char): boolean;
begin
{$IFDEF DEBUG}
loChar := 'a' ;
{$ENDIF}
result := loChar in ['0'..'9'] ;
{$IFDEF DEBUG}
showmessage( ifThen( result, 'É um número', 'Não é um número' ) );
{$ENDIF}
end;Veja que coloquei a verificação de "Debug" em dois momentos. Para resumir, quando o projeto estiver em modo "Debug", não será necessário passar nenhum valor como parâmetro para a função "IsNumber", visto que internamente já existe a alimentação deste parâmetro.
Espero que seja útil!
Até+
Nenhum comentário:
Postar um comentário