全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:718
推到 Plurk!
推到 Facebook!

变量设置有何区别?

答題得分者是:careychen
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-01-18 20:20:42 IP:124.77.xxx.xxx 訂閱
 一个是在PRIVATE下面定义的变量,另外一个是在implementation下面设置的变量,用途是不是一样啊?

[code delphi]
type
TForm1 = class(TForm)
private
var a:integer
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var a:integer;
[/code]

请问下,上面的2个a是不是一样的啊?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
編輯記錄
taishyang 重新編輯於 2009-01-19 17:15:28, 註解 歸類成[問題]‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-01-18 23:07:04 IP:59.126.xxx.xxx 訂閱
不一樣,沒有一個地方是一樣,一樣的只有一個地方,他們都叫【變數 a】


===================引 用 zhouying82 文 章===================
一个是在PRIVATE下面定义的变量,另外一个是在implementation下面设置的变量,用途是不是一样啊?

[code delphi]
type
TForm1 = class(TForm)
private
var a:integer
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
var a:integer;
[/code]

请问下,上面的2个a是不是一样的啊?
------
價值的展現,來自於你用哪一個角度來看待它!!
zhouying82
高階會員


發表:150
回覆:272
積分:189
註冊:2004-03-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-01-19 09:04:13 IP:218.80.xxx.xxx 訂閱
不是啊,在PRIVATE下面的不是就是说明在本类中的变量吗?implementation下面的不是也是一样的吗?楼上的可否告诉我有何区别啊?
------
断断续续的学了几年,还是一个初学者,永远支持Delphi !
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-01-19 10:07:26 IP:60.248.xxx.xxx 訂閱
如果您的程式只寫【一個 Unit ,一個 Class】,那…基本上用法沒什麼
只是差別您是要呼叫的是 物件裡的 a 還是 【該 Unit 裡的 a 】 而已

但寫 【一個 Unit 、二個以上的 Class 時】,在 Implementaion 下的 a 可視為 二個 Class 互通的公用變數
但在 AClass 與 BClass Private 裡的變數是必須加上 Class 才能存取,這時候再講下去就是物件的設計概念了,例

[code delphi]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
a: Integer;
public
{ Public declarations }
end;
TTest = class
private
a: Integer;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var a: Integer;
procedure CallImplementationA;
begin
a := 1000;
ShowMessage('這是 implementation 下的 ' IntToStr(a));
end;
procedure TForm1.FormCreate(Sender: TObject);
var Test: TTest;
begin
Test := TTest.Create;
Test.a := 100;
ShowMessage('這是 TTest 裡的 ' IntToStr(Test.a));
FreeAndNil(Test);
a := 50;
ShowMessage('這是 Form1 裡的 ' IntToStr(Self.a));
ShowMessage('這是 Form1 裡的 ' IntToStr(a));
CallImplementationA;
ShowMessage('這是 Form1 裡的 ' IntToStr(Self.a));
end;
end.
[/code]


===================引 用 zhouying82 文 章===================
不是啊,在PRIVATE下面的不是就是说明在本类中的变量吗?implementation下面的不是也是一样的吗?楼上的可否告诉我有何区别啊?
------
價值的展現,來自於你用哪一個角度來看待它!!
系統時間:2024-05-04 14:10:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!