Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Rodrigo Miss

Dif entre Private x var Global

Recommended Posts

private  Contador: integer;

procedure TForm1.Button1Click(Sender: TObject);beginInc(Contador);ShowMessage(IntToStr(Contador));end;

Da forma acima ele comeca a contagem no: 1

 

 

 

procedure TForm1.Button1Click(Sender: TObject);varContador: integer;beginInc(Contador);ShowMessage(IntToStr(Contador));end;

Da forma acima ele inicia a contage com: 9975433

 

pq essa diferenca ????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom Rodrigo...essa tambem sempre foi uma dúvida minha, quanto a digamos assim "poluição" das variáveis...por isso adquiri o hábito de sempre inicializá-las antes de usalas...colocando por exemplocontador := 0;mas o porque, eu irei verificar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você declarar uma variável, sempre é interessante dar um valor inicial para ela, visto que pode ter problemas como este de atribuição de valor, no caso você fez uma declaração, e logo após tenta incrementar a variável, como ela não tem um valor default, ele deve de iniciar automaticamente com uma valor... Enquanto que no Private e Public, ele mesmo já seta o valor como 0 e para string ''...E no caso este seu exemplo você mostra uma variável Private (declarada no Private do form) e uma local (declarada no evento do botão). No caso uma Global deveria de ser declarada no Public... É claro que esta declarada no Private não deixa de ser uma global, mas global somente para a unit em questão...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Marcio ....

 

massa... vlw pela dica kra...

 

---

no caso

 

procedure TForm1.Button1Click(Sender: TObject);

var

Contador: integer;

begin

Contador:= 0;

Inc(Contador);

ShowMessage(IntToStr(Contador));

end;

 

ele naum funcionaria pq toda a vez ele ia mostrar 1....

 

axo q a unica forma msm seria declarar como private ou public neh?;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Neste caso sim, terá de ser colocado no Private do forumlário, visto que sempre que clicar ele vai declarar e zerar a variável, para que isto não aconteça coloque no Private do form.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, grande Márcio...

 

vlw aew por sanar a nossa curiosidade... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

rsrs...

 

sempre tive essa questão em minha cabeça...

 

mas agora ta explicado...

 

vlw aew!!!

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Marcio ....

 

massa... vlw pela dica kra...

 

---

no caso

 

procedure TForm1.Button1Click(Sender: TObject);

var

Contador: integer;

begin

Contador:= 0;

Inc(Contador);

ShowMessage(IntToStr(Contador));

end;

 

ele naum funcionaria pq toda a vez ele ia mostrar 1....

 

axo q a unica forma msm seria declarar como private ou public neh?;

 

 

 

Declara assim:

 

var   contador:integer=0;

 

mas como é uma variável contadora, eu recomendo usar word ao invés de integer já que pode gravar valores maiores ignorando os negativos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.