问个关于BPL的问题

nimeide1234567890 2015-08-18 11:26:01
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的基础上做,怎么办?
...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
缘中人 2015-08-18
  • 打赏
  • 举报
回复
frmBPL: TForm; frmBPL是普通的Form,自然没有id属性
缘中人 2015-08-18
  • 打赏
  • 举报
回复
(frmBPL as  TForm3).id=……
包含3的头文件
nimeide1234567890 2015-08-18
  • 打赏
  • 举报
回复
引用 1 楼 ksrsoft 的回复:
(frmBPL as  TForm3).id=……
包含3的头文件
这么写不是要 uses Unit3; ??? 那搞BPL就没有意义了

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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