早上好,我在重写创建表单时遇到了这个问题,在我意识到错误引发了异常类分段错误(11)之前,当我代理应用程序时遇到了acessviolation。
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中实现了表单的自动生成。
有谁知道吗?
发布于 2014-08-14 21:10:42
从问题中我们可以看到,您似乎正在尝试创建表单的一个实例,但随后在另一个实例frm_cart上调用Show方法。
这本身肯定是错误的。很可能frm_cart没有初始化,因此出现了分段错误。
但创建过程也会中断,因为您在实例而不是类上调用了构造函数。书中最古老的错误。
然后在Show之后立即调用Free,这也相当于否定了代码的效用。
我希望您删除frm_cart变量并编写:
Tfrm_cart.Create(...).Show;此外,即使在最好的情况下,接受异常也是不好的,但在构造函数中却是一个严重的错误。当构造函数引发异常时,这意味着对象尚未正确创建。试图继续下去,就好像问题从来没有发生过一样,只是推迟了痛苦。
https://stackoverflow.com/questions/25307280
复制相似问题