請教關於 LoadPackage 之後 Form Create的問題... |
尚未結案
|
evanskang
一般會員 發表:6 回覆:7 積分:2 註冊:2004-03-01 發送簡訊給我 |
各位大大:
小弟透過使用BPL來開發專案,目前所遇到的問題是可以LoadPackage,也可以GETCLASS,可是在Create Form時卻出現了以下的錯誤訊息,因小弟在KTOP找了相關資料都無法解決問題,所以想請問各位大大是否有解決方法?
procedure TMainForm.StandClick(Sender: TObject);
var uClass: TClass;
uForm: TForm;
Pgm_Name: string;
Mdu_Name: string;
begin
Mdu_Name := 'Base' + Trim(Copy(TMenuItem(Sender).Name, 3, 3));
Pgm_Name := Trim(Copy(TMenuItem(Sender).Name, 3, 6));
if Sender is TMenuItem then
begin
with qryCheckPgm do
begin
Close;
ParamByName('PGM_NO').AsString := Pgm_Name;
Open; if FieldByName('PGM_CNT').AsInteger > 0 then
begin
LoadPackage('Bpl\' + Mdu_Name + '\' + Pgm_Name + 'u.Bpl');
uClass := GetClass('T' + Pgm_Name + 'Form');
if uClass <> nil then
begin
Application.CreateForm(TComponentClass(uClass), uForm);//這一段出現錯誤訊息
uForm.ObjectMenuItem := TMenuItem(Sender);
uForm.Show;
end;
end;
end;
end;
end;
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
若是有DATAMODULE時要先加之後再加其他FORM才不會有問題
procedure TFMSTK05010D.OKBtnClick(Sender: TObject); var cs1 : TClass; cs2 : TClass; fm1 : TForm; FM2 : TDATAMODULE; begin LoadPackage('C:\BRMS_ERP\UClient\BPL\CSTK09070.BPL'); cs1 := GetClass('TDMSTK09070'); Application.CreateForm(TComponentClass(cs1), fm2); cs2 := GetClass('TFMSTK09070'); Application.CreateForm(TComponentClass(cs2), fm1); end; |
evanskang
一般會員 發表:6 回覆:7 積分:2 註冊:2004-03-01 發送簡訊給我 |
|
huangeider
高階會員 發表:288 回覆:492 積分:231 註冊:2003-02-26 發送簡訊給我 |
DATAMODULE 小弟已經包在EXE中了...這樣小弟還要在LOADPACKAGE一次嗎?
先把程式改簡單來測試一下自已的環境
可以先試著加入datamodule然後run看看,我的經驗不加datamodule時,而datamodule中有共用到的東東那麼會有錯誤,若是datamodule沒有共用到的物件或程序的話呢?會不會有問題?我沒測過
RUN TIME PACKAGE 小弟也有選了...還有哪些地方是小弟LOSE掉的呢?
這個臭蟲得靠自已找了,先把程式簡單化吧,只留必要的程序,然後慢慢加程序
一定可以找到
|
evanskang
一般會員 發表:6 回覆:7 積分:2 註冊:2004-03-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |