Atribuir valores a constante é possível?
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.
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
Curtidas 0
Respostas
Marco Salles
31/03/2009
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;
GOSTEI 0
Pehdepano
31/03/2009
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?
Alguma pista? Será que isso não pode ser feito via IDE?
GOSTEI 0
Marco Salles
31/03/2009
Coloque esta diretiva no Projeto que não compila que ele ira compilar
Se tem outro Modo eu não sei..
Se tem outro Modo eu não sei..
GOSTEI 0
Pehdepano
31/03/2009
Funcionou tranquilamente adicionando a diretiva.
Mas fiquei intrigado do porque funciona nos outros projetos.
Deve ter algum lugar na IDE.
Valeu Marcos
[]´s
Mas fiquei intrigado do porque funciona nos outros projetos.
Deve ter algum lugar na IDE.
Valeu Marcos
[]´s
GOSTEI 0
Marco Salles
31/03/2009
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
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
GOSTEI 0
Pehdepano
31/03/2009
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.
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.
GOSTEI 0
Marco Salles
31/03/2009
Obrigado tb por trazer esta informação adicional..
GOSTEI 0