環境是 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。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/25990.html
標籤:VCL組件開發及應用
