public에서implementation 앞에서 정의한 전역 변수와 차이

전언
delphi에서 인코딩을 할 때 프로젝트에서 전역 변수를 자주 사용하기 때문에 전역 변수를 정확하게 사용하는 것이 특히 중요하다.본고는 주로public에서implementation 앞에서 정의한 전역 변수와 차이점을 소개한다.
1. 단원 파일 정의의 전역 변수
먼저 단원 파일을 첨부하고 코드에서 변수가 있는 위치를 보여 줍니다.단원 이름은 uni1입니다.pas
 TForm1=Class(TForm)
    Edit1 : TEdit;
    Label1 : TLabel;
    Button1 : TButton;
    Button2 : TButton;
    Button3 : Tbutton;
    procedure Button1Click(Sender : TObject);
    procedure Button2Click(Sender : TObject);
    procedure Button3Click(Sender : TObject);
     private
   {Private declarations}
   Name : String='Deen';  //    ;
  public
     {Public declarations}
  end;
   Var

  Form1 : TForm;
  Name : String;//    。

   implementation
  {$R *.dfm}

 procedure TForm1.Button1Click(Sender : TObject);
 var
  Name : String; //    ;
 begin
   Name := '    ';
   Edit1.Text := Name;
 end;
 
 end.

2. 각 변수의 정의, 작용 범위와 사용
전역 변수: 클래스 밖에서 성명된 변수를 가리킨다. 보통 이런 변수는 전체 공사 내에서 유효하다. 즉, 전체 공사에서 클래스를 모두 사용할 수 있다.이 변수의 생존 주기는 공사가 창설될 때 유효하고 공사가 소각될 때 소각된다.
다른 단원 파일에서 직접 사용할 수 있으며, 인용된 단원의 창 이름을 추가할 필요가 없습니다.예를 들어 나는 한 창에서 전역 변수를 설명했는데 다음과 같다.
var
  W_POS_BankForm: TW_POS_BankForm;
   Test:string='dancy';   //      

그러면 나는 바로 다른 창에서 사용할 수 있다. 다음과 같다.
ShowMessage(Test);

주:Test 앞에는 유닛과 같은 파일 이름을 추가할 수 있습니다.Test.
구성원 변수: 클래스에서 성명된 변수를 가리키며 이런 변수는 클래스에서 모두 사용할 수 있다.그 생명주기는 클래스가 생성될 때 유효하고 클래스가 소각될 때 소각됩니다.
다른 단원 파일에서 사용할 때 인용된 단원의 창 이름을 추가해야 합니다.
Form1.name; name 앞에 붙인 것은 창 이름입니다.
국부 변수: 방법 내부에서 성명된 변수를 가리키며 이런 변수는 방법 내부에서만 사용할 수 있다.그 생명주기도 방법 내부에서 유효하며 방법 호출이 끝난 후에 그 내부에 성명된 변수도 이에 따라 소각된다.
이 단원에서만 사용합니다.
3. 공공 변수와implementation 앞에서 정의된 전역 변수의 차이
구성원 변수를 사용하든 전역 변수를 사용하든 먼저 단원 파일에 사용해야 한다.
public에서 클래스 구성원을 정의하고,implementation에서 정의한 것이야말로 전역 변수 Public에서 정의한 것이며, 다른 단원 (Unit) 에서 이 단원의 이름을 인용합니다.implementation에서 인용한 것이야말로 진정한 전역 변수이다. 다른 단원에서 인용하면 바로 호출할 수 있고 단원의 이름을 붙이지 않아도 된다.

좋은 웹페이지 즐겨찾기