請問動態載入 Packages 及 動態啟動 TXXX001 ...等自訂FROM |
缺席
|
shpeng
初階會員 發表:6 回覆:67 積分:49 註冊:2002-12-21 發送簡訊給我 |
原程式 USE UGST001,UGST002 if BaseFrom = 'GST001' then begin GST001 := TGST001.Create(Self); GST001.Open(其它相關傳數); end; if BaseFrom = 'GST002' then begin GST002 := TGST002.Create(Self); GST002.Open(其它相關傳數); end; MDIFrom已經封裝於 Package 如何修改由字串參數啟動,動態載入的 MDI & SDI 因為系統 MDI 約300個 如何不要宣告 use 的技巧啟動 自訂TFROM 如下方式啟動 OpenFrom(BaseFrom,其它相關傳數); 謝謝發表人 -
------
==取之於斯,用之於斯== |
bundur
一般會員 發表:16 回覆:44 積分:22 註冊:2002-11-30 發送簡訊給我 |
引言:原程式 USE UGST001,UGST002 if BaseFrom = 'GST001' then begin GST001 := TGST001.Create(Self); GST001.Open(其它相關傳數); end; if BaseFrom = 'GST002' then begin GST002 := TGST002.Create(Self); GST002.Open(其它相關傳數); end; MDIFrom已經封裝於 Package 如何修改由字串參數啟動,動態載入的 MDI & SDI 因為系統 MDI 約300個 如何不要宣告 use 的技巧啟動 自訂TFROM 如下方式啟動 OpenFrom(BaseFrom,其它相關傳數); 謝謝發表人 - >>< face="Verdana, Arial, Helvetica"> 可以做,这个需要用到 DELPHI 包的功能 可以参考下述文章: 《如何使用Delphi開發大型主從架構系統-Package的秘密和威力》 该文章发表在 http://www.borland.com.tw/ 的官方网站上 大概过程是这样的: 1、写一个包 Package,在包中必须注册每个将要被调用的 FORM RegisterClass(TGST001); RegisterClass(TGST002); ... 2、从主程序动态载入该 Package 3、通过每个 FORM 的类型名来Create并启动FORM,如: tPackageClass := GetClass('TGST002'); if tPackageClass <> nil then begin p := TComponentClass(tPackageClass).Create(Application); P.Visible := True; // Show 出你的 Form {... Other Code ...} end; 大祗如此吧,我以前做过一个 Case 也是这样做的。 这种方法挺好的,可以 PlugIn 业务。只是好像这样写的人不多,真遗憾。 只是这样写必须有一个很好的对业务的 Frame 设计方案。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |