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

已知某幾個類別的名稱字串,如何分別轉成其類別物件

尚未結案
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-29 14:08:41 IP:203.204.xxx.xxx 未訂閱
我繼承了TFrame設計了數個不同的類別,如TFrameA,TFrameB,TFrameC....TFrameZ. 其上都放了不同的元件。 請問在只知類別名稱的狀況下,如'TFrameA','TFrameZ' 如何正確建立這兩個物件 之前查過站上的文章,多數是用getclass取得後轉成TFORMCLASS, 但因為我的TFrameA和TFrameZ上面都貼了許多不同的元件,因此勢必需用原類別去create,不知delphi是否有辦法從字串直接轉成原物件的類別呢?謝謝
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-29 15:18:07 IP:61.218.xxx.xxx 未訂閱
我都是這樣做的:    1.先把會用到的form註冊,用RegisterClasses([TFrameA])    2.當要建立時,以FindClass找出該類別,轉型成TForm,然後呼叫Application來建立Form,如下:    
function TfrmMainForm.ExecuteProcess(FormName: string): TForm;
var
  Form : TForm;
begin
  Form := TFormClass(FindClass(ID)).Create(Application);
  Result:=Form;
end;
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-09-29 16:52:11 IP:203.204.xxx.xxx 未訂閱
其實我問這個問題主要是目前想開發一個專案,專案中有一個主form,裏面有一個執行功能程式的選單,點了選單其實就是去create TFrameViewImage或TFrameEditText。而重點是說如果交給使用者時,只開發了TFrameViewImage和TFrameEditText兩隻功能程式。但是希望未來開發TFrameFTP時(TFrameViewImage、TFrameEditText可能會做成dll或dpl的形式),能夠只交給user FrameFTP.DLL或FrameFTP.dpl和新的選單檔。而不用在去主程式裏新增開啟TFrameFTP的程式碼,這樣主程式就不用重新compiler再送給user了。總之能省則省。反正就是希望新的dll或dpl能直接掛在主程式上,而且也不用修改主程式啦。目前是希望能做成這樣。可不可行還在研究中,還請大家幫忙,謝謝。
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-09-29 17:03:42 IP:61.218.xxx.xxx 未訂閱
那乾脆把你的子程式做成一個一個的執行檔或DLL,然後主畫面就負責去呼叫....這樣的解法聽起來有點拙
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-09-29 17:45:02 IP:203.204.xxx.xxx 未訂閱
哈哈,就是因為沒寫過咩,那再請教一下我剛才所要問的重點,如果子程式寫成dll,能夠在不修改主程式的狀況下,把新寫的dll 裏的form或frame create出來嗎,要用什麼方法呢,謝
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-09-30 11:23:23 IP:61.218.xxx.xxx 未訂閱
參考這裡 http://delphi.ktop.com.tw/quicksearch.exe/quicksearch?SearchStr=©I¥sdll
iamjsn
初階會員


發表:78
回覆:95
積分:44
註冊:2002-08-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-10-01 14:09:29 IP:203.204.xxx.xxx 未訂閱
3Q
系統時間:2024-07-01 7:49:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!