Availiable forms 與 Auto-create forms 的問題,高手請指點一下! 謝謝了!!!!!!!!(100分)

  • 主题发起人 主题发起人 lixianxiang
  • 开始时间 开始时间
L

lixianxiang

Unregistered / Unconfirmed
GUEST, unregistred user!
我在Project->Options的Forms選項卡下
將form1從Auto-create forms 移到 Availiable forms后,運行后點擊按鈕調用form1時就會出現

Debugger Exception Notifiction框:

Project MES.exe raised exception class EAcessViolation with message 'Access violation at address 004D9DDF in module 'MES.exe'. Read of addresss 00000000'. Process stopped. Use step or run to continue.

調用該窗體的代碼是: form1.showmodal; 關閉時: action:=cafree;

參考書,這樣可以呀,就是在調用窗體時,form1才被創建,關閉時就釋放.

但是將form1從Availiable forms 移到 Auto-create forms 后,又正常了,什麽原因啊?哪位高手請指點一下,謝謝了
 
给你一个动态创建窗体的例子:
procedure Tmain_form.N6Click(Sender: TObject);
begin
if not Assigned(online_cash) then
begin
Application.CreateForm(Tonline_cash, online_cash);
try
online_cash.ShowModal;
finally
online_cash.Free;
online_cash := nil;
end;
end
else
online_cash.ShowModal;
end;
 
如果你把窗口都放在Availiable forms,show窗口之前需要使用代码建立的。
像这样,
Application.CreateForm(TForm1, Form1);
form1.show;
否则就是出现你这样的错误。
在project中,放在Auto-create forms 的form,系统会自动建立from ,你打开Project->resource就可以看见。
 
多人接受答案了。
 
后退
顶部