Fórum Dúvidas sobre Variaveis #361451
22/07/2008
0
Paulo
Curtir tópico
+ 0Posts
22/07/2008
Aroldo Zanela
Você não consegue declarar uma váriável de mesmo nome nas seções private e public, mas consegue declarar com o mesmo nome sendo pública e local ou privada e local.
Quando uma variável é declarada local, ela possui o seu escopo limitado dentro da procedure ou função onde foi declarada e é descartada da memória assim que a função/procedimento é encerrado.
Veja um exemplo:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
btn2: TButton;
procedure btn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
I: Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var I: Integer;
begin
I := 123;
ShowMessage(IntToStr(I));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
I := 999;
end;
procedure TForm1.btn2Click(Sender: TObject);
begin
ShowMessage(IntToStr(I));
end;
end.
Gostei + 0
22/07/2008
Paulo
Eu não falei Private e Public ao mesmo tempo. Eu disse Private e Local ou Public e Local. Eu apenas exemplifiquei a Private e Local, mas depois descorri minha dissertação com Public e Global. Eu estou dando manutenção em um Software que possui a munha dúvida. A pergunta foi qual irá receber o valor em situações assim: A local ou as outras?
Gostei + 0
22/07/2008
Comodelphi
Gostei + 0
22/07/2008
Paulo
Gostei + 0
23/07/2008
Rodc
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)