我以前能夠做到這一點使用普通德爾福按鈕:如何在框架上的按鈕上的點擊事件中完全釋放框架?
在第一幀我有(簡體)
procedure FirstFrame.ButtonClick(Sender: TObject)
Begin
if TButton(Sender).ModalResult = mrOK then
ChildFrame.DoOKStuff
else
ChildFrame.DoCancelStuff;
ChildFrame.Free;
end;
procedure FirstFrame.ShowFranme;
begin
ChildFrame := TFrameWithButtons.Create(Owner);
ChildFrame.Parent := self;
ChildFrame.OKButton.OnClick := ButtonClick;
ChildFrame.CancelButton.OnClick := ButtonClick;
ChildFrame.Visible := True;
end;
在Childframe我什麼都不做處理按鈕點擊...按鈕單擊已設置爲將控件返回到第一幀。
對於某些第三方按鈕,偶爾會導致AV。 我明白爲什麼 - 在第三方代碼處理的某個時候返回到現在釋放的幀或按鈕,但被叫代碼是在第一幀...令人討厭的是它只是99.99%的時間工作:)
那裏沒有幀的發佈過程。
所以我的問題是什麼是正確的方式來處理這種情況?
同時使用了Delphi 6和Delphi 2009
如何在你的框架reprocucing TCutsomForm.Release行爲? –
假設'ChildFrame'是'FirstFrame'的一個字段,你應該調用'FreeAndNil(ChildFrame)'而不是'ChildFrame.Free'。它可能會在......之後的0%時間內產生副作用,但即使它現在有99%的時間工作,但它可能並不總是給出正確的結果。 –
道歉的答案海報 - 我還沒有回到這個由於其他壓力 - 但它看起來像CMRelease :) – Despatcher