怎么在DELPHI包中调用子窗体?(100分)

  • 主题发起人 主题发起人 louqing_2
  • 开始时间 开始时间
L

louqing_2

Unregistered / Unconfirmed
GUEST, unregistred user!
将程序分割成多个包,包中是子窗体,怎么调用它。
 
做一个过程给外部调用不就可以了.
 
问题是我不知怎么做啊?有没有源码啊?我是初学者
 
老大,等你回复我啊,我是实在不会啊....................................................

在用BPL中如果是子窗体,不能创建子窗,提示内存出错,不知怎么办了,有没有好的调用方法啊?给一个吧,我想了好久,一直没有解决这个问题啊....
 
你把原码帖点出来看看~
 
function CreateFormByClassName(const ClassName: string;vmaimfrom:string): TCustomForm;
var
AClass: TPersistentClass;
begin
{ Note that TApplication "owns" this form and thus it must be freed prior
to unloading the package }
AClass := GetClass(ClassName);
if AClass <> nil then
Result := TComponentClass(AClass).Create(TCustomForm(GetClass(vmaimfrom))) as TCustomForm //此句提示不能建立窗体,
else
raise Exception.CreateFmt(sErrorCreateForm, [ClassName]);
end;

function ShowModalFormByClassName(const ClassName: string;vmaimfrom:string): integer;
var
frm: TCustomForm;
begin
frm := CreateFormByClassName(ClassName);
try
Result := frm.Show; 
finally
frm.Release
end;
end;
 
老大,回我一下吧,,,,急等啊
 
可能是你调用的时候,参数不正确.可以参考网上的例子:
procedure TForm2.MnShowFirstFormClick(Sender: TObject);
begin
if Assigned(Form1) then Exit;
TPersistentClass(Form1Class) := GetClass('TMdiChild1');
if Assigned(Form1Class) then
begin
Form1 := Form1Class.Create(Self);
TCustomFormCrack(Form1).OnDestroy := OnChildDestroy;
UpdateMenuState;
end
else
ErrMsg('没有找到窗体类的入口!');
end;

procedure TForm2.MnShowNextFormClick(Sender: TObject);
begin
if Assigned(Form2) then Exit;
TPersistentClass(Form2Class) := GetClass('TMdiChild2');
if Assigned(Form2Class) then
begin
Form2 := Form2Class.Create(Self);
TCustomFormCrack(Form2).OnDestroy := OnChildDestroy;
UpdateMenuState;
end
else
ErrMsg('没有找到窗体类的入口!');
end;
 
接受答案了.
 
后退
顶部