早上好,我在重写创建表单时遇到了这个问题,并且在我意识到错误引发异常类分段错误之前,在depurei应用程序之前进行了一次访问(11)。
Tfrm_cart.Create constructor (AOwnerr: TComponent; ptipo1: String; PID1: Integer);
begin
try
inherited Create (AOwnerr);
type: = ptipo1;
id: = PID1;
except
on e: Exception of
begin
ShowMessage (e.Message);
end;
end;
end;
并称之为
With frm_cart.Create (self, 'INC', 0) of
begin
frm_cart.Show;
Free;
End;
并在Delphi中自动创建表单。
任何人都有任何想法??
答案 0 :(得分:1)
从我们在问题中看到的内容看来,您似乎正在尝试创建表单实例,然后在另一个实例Show
上调用frm_cart
方法。
这本身肯定是错的。很可能frm_cart
未初始化,因此分段错误。
但是创建也被破坏了,因为你在一个实例而不是一个类上调用了构造函数。这本书中最古老的错误。
然后在Free
之后立即致电Show
,这也会使您的代码失效。
我希望您删除frm_cart
变量并写入:
Tfrm_cart.Create(...).Show;
此外,吞咽异常在最好的时候是不好的,但在构造函数中是一个严重的错误。当构造函数引发异常时,意味着该对象尚未正确创建。尝试继续,好像问题从未发生过,只是推迟了痛苦。