环境是 Delphi 7 + XP,问题的一些相关的情况如下:
1、需要在程序启动之前做一些前置操作,我修改了Application(Controls.pas),于是工程不能 build with vcl。
2、新建了BPL,包含有一些自定义的TNewFrame,继承自TFrame,通过类似如下的 function 加入到程序界面
function build(c : TWinControl) : TNewFrame;
//……
begin
f := TNewFrame.Create(c);
f.Parent := c; // ->这一句导致 AV
result := f;
end;
export build;
问题是:程序关闭会AV。测试过有2种做法不会AV
1、程序在关闭前 f.Parent := nil,不会 AV;这样的话每个自定义的组件都得 parent := nil,
2、build with vcl,不会AV。可是这样就不能修改 Application 了
请问有什么方法,既可能修改 Application,又不用 parent := nil
PS: 我的 Delphi 7 的 vcl 只有 dcp,没有 dpk,没法 build。