请问重名对象怎么建立? |
答題得分者是:P.D.
|
rainxie
一般會員 發表:20 回覆:27 積分:14 註冊:2008-03-13 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
其實無須改名, Delphi自然會分辨兩組物件, 只要遵循下列的要求
假設 unit1.TMyType unit2:TMyType 1.要使用那一組TMyType 只要前面加入該 unit的名稱, 例如 unit1.TMyType 或 unit2.TMyType 就不會錯 2.避免使用 with unit1 do begin TMyType..... end; 因為這樣Delphi會無法分辨該用 unit1 或 unit2 以上是基於你不會改名的變通方式, 當然最好還是改一下名稱, 倒不是不可同名的問題, 而是你自己日後在Debug時會增加困難度 |
rainxie
一般會員 發表:20 回覆:27 積分:14 註冊:2008-03-13 發送簡訊給我 |
谢谢版主的回复,我试过您这种办法,但好像不能用在type里,比如:
type TmainForm = class(TForm) myType:unit1.TMyType; private public end; 会报这样的错误:期待“;”,却出现了“.”。 这里该如何写呢? ===================引 用 P.D. 文 章=================== 其實無須改名, Delphi自然會分辨兩組物件, 只要遵循下列的要求 假設 unit1.TMyType unit2:TMyType 1.要使用那一組TMyType 只要前面加入該 unit的名稱, 例如 unit1.TMyType 或 unit2.TMyType 就不會錯 2.避免使用 with unit1 do begin TMyType..... end; 因為這樣Delphi會無法分辨該用 unit1 或 unit2 以上是基於你不會改名的變通方式, 當然最好還是改一下名稱, 倒不是不可同名的問題, 而是你自己日後在Debug時會增加困難度 |
rainxie
一般會員 發表:20 回覆:27 積分:14 註冊:2008-03-13 發送簡訊給我 |
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
不知道有沒有誤解你的意思, 看一下這個 sample, 有沒有辦法做成如此
http://delphi.ktop.com.tw/board.php?cid=31&fid=97&tid=94753 |
rainxie
一般會員 發表:20 回覆:27 積分:14 註冊:2008-03-13 發送簡訊給我 |
真是很感谢您!
可能是我没讲清楚,让您误解了,不好意思。 假设Tmytype是一个可视控件,我从控件组上拉一个过来(假设这个控件属于unit1),delphi就会在下面里增加下述代码,并在uses里增加unit1. type TForm3 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Label1: TLabel; mytype1:TMtype; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; 然后我又要用unit2,所以又uses了unit2(可能我并不会用unit2的TMytype,但会用其他某些东西),因为TMytype重复,编译就会报错:大致是找不到TMtype。希望我讲清楚了,呵呵呵 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
既是一個可視控件, 其實Delphi本身就可以分辦了啊!
當你在 unit1(Form1)上拉了一個 TmyType 的vcl, 在form11 的 properity name 必為 myType1, 是一個public屬性的東西 在 unit2(Form2)使用時, 直接 uses unit1, 然後在Form2中要使用就是Form1.myType1 就可以了 這就像是TQuery 在兩個Form1, Form2 建立Query1, Query1 引用一樣, Form1.Query1 與 Form2.Query1, 這是不衝突! ===================引 用 rainxie 文 章=================== 真是很感谢您! 可能是我没讲清楚,让您误解了,不好意思。 假设Tmytype是一个可视控件,我从控件组上拉一个过来(假设这个控件属于unit1),delphi就会在下面里增加下述代码,并在uses里增加unit1. type TForm3 = class(TForm) Button1: TButton; Button2: TButton; Edit1: TEdit; Label1: TLabel; mytype1:TMtype; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; 然后我又要用unit2,所以又uses了unit2(可能我并不会用unit2的TMytype,但会用其他某些东西),因为TMytype重复,编译就会报错:大致是找不到TMtype。希望我讲清楚了,呵呵呵 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |