菜鸟求救(50分)

  • 主题发起人 主题发起人 hbffff
  • 开始时间 开始时间
H

hbffff

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么做一个通用的调用form的函数?
procedure CreatForm(form: Tobject);
begin
if not(assigned(form)) then
begin
form:=form.create as (form.classtype);
//出现非法内存访问,此时的form.classtype是Tobject还是实参的class?
end;
(form as Tform).Show;
end;
//以下是一个caller
procedure Tmain.providerchooseClick(Sender: TObject);
begin
CreatForm( providerinfo_form);
end;
 
procedure CreateForm(Form: TForm
FormClass: TFormClass);
begin
if not Assigned(Form) then
Form := FormClass.Create(Application);
Form.Show;
end;

procedrue ...
begin
CreateForm(ProviderInfo_Form, TProviderInfo_Form);
end
 
JohnsonGuo兄:
不知为何总出现win32API error!
 
我想知道你的操作系统,因为我在Win2K下测试通过的。
 
win98
用application.createform(form1,Tform1)照样出差错
 
实际错在form.show? why?
 
接受答案了.
 
后退
顶部