Rafael Adão Posted March 22, 2013 at 02:12 AM Report #499948 Posted March 22, 2013 at 02:12 AM Como anda a utilização de variáveis estáticas em delphi atualmente? Trabalho com uma versão muito antiga do delphi em que para utilizar uma variável estática, deve-se utilizar: const estatica: Integer = 3; Dei uma pesquisada em algumas wikis mas não encontrei o que procurava. O que quero saber é se nas versão maiores, tipo XE3, fizeram alguma mudança. sds
nunopicado Posted March 22, 2013 at 08:31 AM Report #499952 Posted March 22, 2013 at 08:31 AM Não sei bem o que queres dizer por variáveis estáticas, mas o código que puseste continua valido para constantes de tipo predefinido. Também, nesse exemplo podias dispensar o tipo de dados, que o compilador escolheria automaticamente o tipo que melhor se adaptasse ao valor. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
Kline777 Posted March 22, 2013 at 09:07 AM Report #499957 Posted March 22, 2013 at 09:07 AM Pois, penso que nao estou enganado mas isso não é uma variavel estatica mas sim uma constante 😛 de qualquer maneira está igual nas novas versões 🙂
Orgon Posted March 22, 2013 at 03:01 PM Report #499998 Posted March 22, 2013 at 03:01 PM Isso é uma constante. Eu costumo fazer assim: const estatica = 3;
thoga31 Posted March 22, 2013 at 03:22 PM Report #500004 Posted March 22, 2013 at 03:22 PM Com tem sido dito, isso é uma constante. Uma variável estática é outra coisa, um conceito diferente, e que normalmente está mais presente noutras linguagens como Java. Sendo um valor imutável, o conceito de variável, logo aí, é posto de lado - uma variável varia, e com const define-se um valor fixo com um nome - constante ao longo de todo o programa. 😉 Nada mudou. As constantes mantêm-se como eram antes. Knowledge is free!
pwseo Posted March 22, 2013 at 03:42 PM Report #500008 Posted March 22, 2013 at 03:42 PM Rafael Adão, De facto, a criação de variáveis estáticas é algo que penso necessitar de uma flag específica para o compilador (algo como ${J+}, "Writeable Typed Constants"), visto que habitualmente não é permitido. Penso que as adições nas novas versões do Delphi dizem respeito a variáveis estáticas em classes (procura por coisas como class var) mas sinceramente não tenho acompanhado o desenvolvimento da coisa. O próprio FreePascal suporta a criação destas "constantes mutáveis" desde que não estejamos a compilar em modo Delphi.
Rafael Adão Posted March 23, 2013 at 02:01 AM Author Report #500111 Posted March 23, 2013 at 02:01 AM (edited) CRLF, Pesquisei sobre a diretiva {$J+} e percebi que esta diretiva ativa o conceito de variável estática no fonte. Segue um exemplo simples de uso: program prStatic; {$APPTYPE CONSOLE} uses SysUtils; type TSaldo = class {$J+} const valor: Integer = 0; {$J-} end; var xSaldo1, xSaldo2: TSaldo; begin xSaldo1 := TSaldo.Create; xSaldo2 := TSaldo.Create; try xSaldo1.valor := 10; Writeln('Saldo 1: ' + IntToStr(xSaldo1.valor)); Writeln('Saldo 2: ' + IntToStr(xSaldo2.valor)); xSaldo2.valor := 20; Writeln('Saldo 1: ' + IntToStr(xSaldo1.valor)); Writeln('Saldo 2: ' + IntToStr(xSaldo2.valor)); Readln; finally xSaldo1.Free; xSaldo2.Free; end; end. Se não me engano, na conversão do delphi6 para o delphi7 é que essa diretiva se fez necessária. Obrigado a todos pela ajuda. Edited March 23, 2013 at 02:16 AM by Rafael Adão
pwseo Posted March 23, 2013 at 10:03 AM Report #500118 Posted March 23, 2013 at 10:03 AM Rafael Adão, Só mais um reparo: CRLF é a minha "classificação" no fórum, o nick é "pwseo" (tal como o teu nick é "Rafael Adão" e a classificação é "null")
Rafael Adão Posted March 23, 2013 at 10:21 AM Author Report #500119 Posted March 23, 2013 at 10:21 AM valeu hehe, acho que foi o horário que não me deixou pensar direito rsrs
Gilson Nunes Posted September 6, 2013 at 07:43 PM Report #523715 Posted September 6, 2013 at 07:43 PM (edited) mas qdo se fala "variável stática", normalemnte, não está se referindo ao "tipo do c". está se falando de uma varariável q se assemelha aos metódos státicos (de classe). isso tem no delphi desde o 8 se não me falhe a memória e tem tb no FPC TSuaClasse = class public class var Teste : Integer; pra acessá-la: TSuaClasse.Teste := 10; Edited September 6, 2013 at 07:53 PM by thoga31 GeSHi
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now