TFrame & DLL 問題 |
答題得分者是:darkside
|
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
我想把在 DLL 中的一個 Frame 動態產生後,放到主程式上...
可是以下程式,執行完後,什麼事也沒發生,沒有看到想要的 Frame
我的 Frame 上就只有一個按鈕,按下去彈出一個 Message 而以.. 請幫幫忙吧.... 我的 DLL
library Dll2; uses SysUtils, Classes, Forms, MainFrame in 'MainFrame.pas' {Frame1: TFrame}; {$R *.res} function CreateFrame(AOwner: TComponent): TFrame; begin Result := MainFrame.TFrame1.Create(AOwner); end; exports CreateFrame; begin end.我的主程式 unit MainForm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FrameB; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; hIns: THandle; AFrame: TFrame; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var CreateFrame: function(AOwner: TComponent): TFrame; begin if hIns = 0 then Exit; CreateFrame := GetProcAddress(hIns, 'CreateFrame'); if Assigned(CreateFrame) then begin AFrame := CreateFrame(Form1); AFrame.Parent := Self; AFrame.Align := alClient; end; end; procedure TForm1.FormCreate(Sender: TObject); begin hIns := LoadLibrary('Dll2.dll'); end; procedure TForm1.FormDestroy(Sender: TObject); begin AFrame.Free; FreeLibrary(hIns); end; end.-- Skyer
------
-- Regards, Skyer |
darkside
一般會員 發表:15 回覆:42 積分:16 註冊:2002-03-11 發送簡訊給我 |
這個網站:
http://www.geocities.com/huanlin_tsai/ 有幾篇 DLL 的文章,雖然沒有用到 frame,而是將 form 包在 DLL 裡面,但也許會有幫助。
|
Skyer
高階會員 發表:43 回覆:111 積分:120 註冊:2002-04-04 發送簡訊給我 |
感謝您的分享 ^^
經過我測試的結果,發現只要在最後面加個
UpdateControlState
就可以正常顯示了..
寫了一個小 Example.. 希望對跟我有一樣問題的人有幫助.. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=20656 --
Skyer
------
-- Regards, Skyer |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |