Fórum Atribuir valores a constante é possível? #369487

31/03/2009

0

Olá pessoal,

Isso é possível? Óbvio que não, né... o problema é que em um projeto o código compila em outro não. Tem como desabilitar esta verificação de erro em tempo de execução?

vejam o código.
//
procedure talz;
const firstTime: boolean = True;
var i: integer;
begin
if firstTime then
begin
firstTime := False; <== left assign
...
//

Obrigado a todos.


Pehdepano

Pehdepano

Responder

Posts

31/03/2009

Marco Salles

Olá pessoal, Isso é possível? Óbvio que não, né...


hummmmm... Vc deve estar se referindo a Constantes Tipadas
é possivel Sim...

então , vc deve definir a Diretiva {$J+} .. Por isto que num projeto
compila e no Outro Não


Assim :

{$R *.dfm} {$J+}

Olha so um exemplo de constante Tipadas..


procedure talz;
const firstTime: boolean = True;
var i: integer;
begin
firstTime := not firstTime;
if firstTime then
showmessage(´é false´)
else
showmessage(´Não é´);
end;


usando a directiva definida acima

procedure TForm1.Button2Click(Sender: TObject);
begin
talz;
end;



Responder

Gostei + 0

31/03/2009

Pehdepano

Procurei esta diretiva ( {$J+} )por todo o projeto que compila normalmente e não encontrei nada.

Alguma pista? Será que isso não pode ser feito via IDE?


Responder

Gostei + 0

31/03/2009

Marco Salles

Coloque esta diretiva no Projeto que não compila que ele ira compilar

Se tem outro Modo eu não sei..


Responder

Gostei + 0

31/03/2009

Pehdepano

Funcionou tranquilamente adicionando a diretiva.

Mas fiquei intrigado do porque funciona nos outros projetos.
Deve ter algum lugar na IDE.

Valeu Marcos

[]´s


Responder

Gostei + 0

31/03/2009

Marco Salles

Vou dar uma olha na Diretivas de compilação que tenho em casa.
Talvez exista alguma similar a {+J} ou esta mesma foi definida em
algum lugar da Ide no projeto , como vc mesmo disse.. e não aparece
visivel quando simplesmente se faz uma Pesquisa ...Ok


Responder

Gostei + 0

02/04/2009

Pehdepano

Achei...
Project Options -> compiler ->Syntax Options

Marque o Assignable typed constants :P
[i:4248b2960c]
Assignable typed constants - Enable this for backward compatibility with Delphi 1.0. When enabled, the compiler allows assignments to typed constants. Corresponds to {$J}.[/i:4248b2960c]

Mas vou deixar no código mesmo.

Valeu Marcos.


Responder

Gostei + 0

02/04/2009

Marco Salles

Obrigado tb por trazer esta informação adicional..


Responder

Gostei + 0

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

Aceitar