線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1873
推到 Plurk!
推到 Facebook!

TYPE ...END 下的VAR 主要宣告什麼?

尚未結案
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-18 16:47:55 IP:203.69.xxx.xxx 未訂閱
TYPE ...END 下的VAR 主要宣告變數,procedure,FUNCTION和TYPE宣告有什麼不同?
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-18 16:59:21 IP:218.16.xxx.xxx 未訂閱
在 type 裡的程序是屬於所在的物件的,例如在 TForm1 內的 procedure test; 是屬於 TForm1 的,若不在 TForm1 內呼叫要連著物件名稱 (如 Form1.Test),若是 private 其他的不能呼叫。 在 end 後的是獨立的,在同一 unit 和有use 該 unit 的都可自由使用。直接叫 testl 即可。
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-18 17:28:25 IP:203.69.xxx.xxx 未訂閱
引言: 在 type 裡的程序是屬於所在的物件的,例如在 TForm1 內的 procedure test; 是屬於 TForm1 的,若不在 TForm1 內呼叫要連著物件名稱 (如 Form1.Test),若是 private 其他的不能呼叫。 在 end 後的是獨立的,在同一 unit 和有use 該 unit 的都可自由使用。直接叫 testl 即可。
如何判斷什麼要在TYPE宣告OR在TYPE END之後VAR宣告? VAR 宣告為何不在TYPE 的PUBLIC宣告
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-18 17:45:13 IP:211.21.xxx.xxx 未訂閱
例如在Form1的TYPE ...END 下的VAR宣告變數 A: String 在Form1的public宣告變數 B: String; Form2要使用Form1的變數,要先uses Form1 那Form2要如何使用Form1的變數呢? 您可以在Form2的Create試試下列語法 ShowMessage(A); ShowMessage(Form1.B); 差異在那? A變數不要加Form1但B變數要加Form1 您看一下Delphi在New一個新Form時,在TYPE ...END 下的VAR是不是都有宣告一個 Form1: TForm1;也就是在此宣告變數procedure,FUNCTION,講白一點就是與Form1同等地位。其他的Form使用這區的變數procedure,FUNCTION,不需加上Form的Name ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/18 17:47:22
------
~小弟淺見,參考看看~
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-18 17:54:13 IP:218.16.xxx.xxx 未訂閱
引言: 如何判斷什麼要在TYPE宣告OR在TYPE END之後VAR宣告? VAR 宣告為何不在TYPE 的PUBLIC宣告
簡單來說,與在 Type 宣告的物件 (object) 有直接關係的,或在程序中要使用該物品其他變數/程序的,就應在物件宣告之中。 其他與物件無關的只是提供任何地方都可用的簡單功能的,應在 var 宣告。 還有一點,在物件裡宣告的一定要物件存在 (要先 create) 才能使用。為了使用一個與物件無關的簡單程序而要 create 那物件,就太浪費資源了。
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-18 17:58:47 IP:203.69.xxx.xxx 未訂閱
引言: 例如在Form1的TYPE ...END 下的VAR宣告變數 A: String 在Form1的public宣告變數 B: String; Form2要使用Form1的變數,要先uses Form1 那Form2要如何使用Form1的變數呢? 您可以在Form2的Create試試下列語法 ShowMessage(A); ShowMessage(Form1.B); 差異在那? A變數不要加Form1但B變數要加Form1 您看一下Delphi在New一個新Form時,在TYPE ...END 下的VAR是不是都有宣告一個 Form1: TForm1;也就是在此宣告變數procedure,FUNCTION,講白一點就是與Form1同等地位。其他的Form使用這區的變數procedure,FUNCTION,不需加上Form的Name ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/18 17:47:22
什麼情況要在TYPE宣告OR在TYPE END之後VAR宣告? VAR 宣告為何不在TYPE 的PUBLIC宣告
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-18 18:11:36 IP:211.21.xxx.xxx 未訂閱
在TYPE宣告情況,如Justmade所言: 簡單來說,與在 Type 宣告的物件 (object) 有直接關係的,或在程序中要使用該物品其他變數/程序的,就應在物件宣告之中。 至於什麼情況在TYPE END之後VAR宣告? 這就要講到變數的生命週期。 在TYPE END之後VAR宣告的生命週期是到Application.Terminate也就是整個應用程式結束時才結束。 而在Public宣告的生命週期是該Form Close掉就結束。 不知這樣您清楚嗎? ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
vivi666666
初階會員


發表:83
回覆:94
積分:35
註冊:2003-03-05

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-19 09:52:27 IP:203.69.xxx.xxx 未訂閱
引言: 在TYPE宣告情況,如Justmade所言: 簡單來說,與在 Type 宣告的物件 (object) 有直接關係的,或在程序中要使用該物品其他變數/程序的,就應在物件宣告之中。 至於什麼情況在TYPE END之後VAR宣告? 這就要講到變數的生命週期。 在TYPE END之後VAR宣告的生命週期是到Application.Terminate也就是整個應用程式結束時才結束。 而在Public宣告的生命週期是該Form Close掉就結束。 不知這樣您清楚嗎? ~小弟淺見,參考看看~ 若是A程式有use此Form,是否繼承此Form的TYPE END之後VAR宣告的生命週期也是整個應用程式結束時才結束嗎?Public宣告亦是相同嗎?
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-19 10:16:07 IP:211.21.xxx.xxx 未訂閱
引言: 若是A程式有use此Form,是否繼承此Form的TYPE END之後VAR宣告的生命週期也是整個應用程式結束時才結束嗎?Public宣告亦是相同嗎?
您的意思是指: 假設目前有三個Form,分別為Form1,Form2,Form3 Form2繼承Form1,Form1 uses Form3 Form2要使用Form3的TYPE END之後VAR宣告的變數及Public區的變數 雖然Form1有uses Form3,而Form2繼承Form1, 但Form2要使用Form3的TYPE END之後VAR宣告的變數及Public區的變數 也要uses Form3才可以使用 所以這種情況,變數的生命週期與我上一篇講的一樣,所以您的問題: 若是A程式有use此Form,是否繼承此Form的TYPE END之後VAR宣告的生命週期也是整個應用程式結束時才結束嗎?是的 Public宣告亦是相同嗎?是的Form結束就結束 ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-19 10:25:26 IP:218.16.xxx.xxx 未訂閱
use 其實不是 use 一個 form 而是 use 一個 unit (即是由 unit Unit1 到尾的 End.) 一個 Unit 可以有很多東西,可以只能一個 Form,可以一個 Form 很多別的物件 一些獨立程序/變數 (就是在 var 下那些),也可以沒有 Form 而單是其他物件/程序/變數 當使用了一個 unit, 就可以使用該 unit 在 var 下定義了的物件/功能/變數, 物件和附屬於物件的程序變數是要先 create 物件才可使用,物件 Free 了就不能再使用, 獨立程序/變數則隨時可用。 以一個 TForm 物件來說,定義在他的 public 的程序是要在 create 該 Form 後, 關掉該 Form 前才可以使用,但獨立程序/變數則隨時可用。 其實,物件導向或整個語言架構的慨念不是問一兩個問題就可以明白的,若沒有基礎根基而要明白較深入的問題,別人即使說得再詳細沒根基也是很難找著要點。若能配合看看基楚的書,有不明白拿別人的說明跟書中所讀一對應,就容易明白了。
系統時間:2024-06-28 17:41:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!