问个关于BPL的问题

nimeide1234567890 2015-08-14 10:40:52
unit Unit3;

public
{ Public declarations }
id:string;
end;
---------------------------------------------------

我把Unit3放到BPL中,现在想在Unit2中打开Unit3窗口,并给Unit3中的id赋值,打开Unit3窗口是这么写的:
procedure TForm2.RzDBGrid1DblClick(Sender: TObject);
begin
//Form3:=TForm3.Create(Self);
//Form3.id:=ADOQuery1.FieldByName('id').AsString;
//Form3.ShowModal;
GetForm('TForm3'); //调用BPL
end;

procedure TForm2.GetForm(f1:string);
var AClass: TPersistentClass;
PackageModule: HModule;
frmBPL: TForm;
AddFunc: PInteger;
id: string;
begin
PackageModule := LoadPackage('Package1.bpl');
if PackageModule <> 0 then
begin
AClass := GetClass(f1);
if AClass <> nil then
begin
frmBPL := TComponentClass(AClass).Create(self) as TForm;
//frmBPL.id:=ADOQuery1.FieldByName('id').AsString; //这里错误,[Error] Unit2.pas(49): Undeclared identifier: 'id'
frmBPL.ShowModal;
end;
end;
end;

frmBPL.ShowModal;这句可以打开Unit3窗口,只是上面一句错误,
先不要告诉我做成DLL,目前我只想在BPL的基础上做,怎么办?
...全文
141 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nimeide1234567890 2015-08-14
  • 打赏
  • 举报
回复
引用 1 楼 duck04551 的回复:
转换不对呀 frmBPL := TComponentClass(AClass).Create(self) as TForm;
frmBPL.ShowModal; 如果转换不对,那为什么这里可以打开窗口呢?
taste品味 2015-08-14
  • 打赏
  • 举报
回复
转换不对呀
frmBPL := TComponentClass(AClass).Create(self) as TForm;

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧