procedure TForm1.FormCreate(Sender: TObject); begin FpkHandle := LoadPackage('demo.bpl'); if FpkHandle = 0 then ShowMessage('Can not load package Demo.bpl'); end;procedure TForm1.FormDestroy(Sender: TObject); begin ADOQuery1.Connection := nil; FDM := nil; if FpkHandle <> 0 then UnloadPackage(FpkHandle); end;procedure TForm1.btGetFormClick(Sender: TObject); var AForm: TForm; AClass: TComponentClass; begin if FpkHandle <> 0 then begin AClass := TComponentClass(GetClass('TFrmTest')); if AClass <> nil then begin AForm := AClass.Create(nil) as TForm; AForm.ShowModal; AForm.Free; end; end; end;在TFrmTest中要加上 initialization RegisterClass(TpkfrmTest); finalization UnRegisterClass(TpkfrmTest);记得调用的主程序要build with runtime packages!
[email protected]
begin
FpkHandle := LoadPackage('demo.bpl');
if FpkHandle = 0 then
ShowMessage('Can not load package Demo.bpl');
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
ADOQuery1.Connection := nil;
FDM := nil; if FpkHandle <> 0 then
UnloadPackage(FpkHandle);
end;procedure TForm1.btGetFormClick(Sender: TObject);
var
AForm: TForm;
AClass: TComponentClass;
begin
if FpkHandle <> 0 then
begin
AClass := TComponentClass(GetClass('TFrmTest'));
if AClass <> nil then
begin
AForm := AClass.Create(nil) as TForm;
AForm.ShowModal;
AForm.Free;
end;
end;
end;在TFrmTest中要加上
initialization
RegisterClass(TpkfrmTest);
finalization
UnRegisterClass(TpkfrmTest);记得调用的主程序要build with runtime packages!
应该是
initialization
RegisterClass(TFrmTest);
finalization
UnRegisterClass(TFrmTest);