Utilizando diretivas de compilação personalizadas no Delphi
Olá pessoal!
Neste artigo vou demostrar como utilizar um recurso bastante interessante
chamado Diretiva de Compilação.
Normalmente temos que fazer testes internos em nossos sistemas para verificar
se o exe será um DEMO ou se faz uso de módulo X, ou se é um teste e etc…
Para resolver este tipo de situação, pode-se fazer uso das diretivas de compilação.
O próprio Delphi já nos oferece várias, mas agora vamos nos deter as direivas
criadas pelo desenvolvedor.
Exemplo 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| {$DEFINE TESTE}
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF TESTE}
ShowMessage('Utilizando a diretiva TESTE!');
{$ELSE}
ShowMessage('Sem uso da diretiva TESTE.');
{$ENDIF}
end;
end. |
{$DEFINE TESTE}
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF TESTE}
ShowMessage('Utilizando a diretiva TESTE!');
{$ELSE}
ShowMessage('Sem uso da diretiva TESTE.');
{$ENDIF}
end;
end.
Neste exemplo criamos a diretiva “TESTE” e estamos à usando no clique do botão.
Repare que esta forma de declaração {$DEFINE TESTE}, é válida somente pa a unit em questão.
Exemplo 2
Uso da diretiva em todo projeto.
Através do menu Project > Options, na aba Directories/Conditionals você
encontrará o campo “Conditional defines”, adicione a palavra MEU_TESTE.
Agora será utilizado a diretiva para criar uma condição.
1
2
3
4
5
6
| procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF MEU_TESTE}
ShowMessage('Utilizando a diretiva MEU_TESTE!');
{$ENDIF}
end; |
procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF MEU_TESTE}
ShowMessage('Utilizando a diretiva MEU_TESTE!');
{$ENDIF}
end;
Também pode-se incluir o “else”:
1
2
3
4
5
6
7
8
| procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF MEU_TESTE}
ShowMessage('Utilizando a diretiva MEU_TESTE!');
{$ELSE}
ShowMessage('SEM USO!');
{$ENDIF}
end; |
procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF MEU_TESTE}
ShowMessage('Utilizando a diretiva MEU_TESTE!');
{$ELSE}
ShowMessage('SEM USO!');
{$ENDIF}
end;
Pronto, agora quando formos compilar o delphi só irá reconhecer o código dentro
de “MEU_TESTE”;
Lembrando que a utilização de Diretivas não se aplica apenas a testes,
mas a muitas outras coisas como por exemplo, para gerar versões do seu executável,
fazer tratamentos conforme situações específicas e etc.
Há também um vídeo que demostra o que foi falado aqui.
Forte abraço e até a próxima!
-
Giovani Da Cruz
-
12.660 views
- 0 comentários
- 30 de agosto de 2016
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo