我做的程序,总是报错!欲知详情,请进!
我的程序运行时,首先弹出的是登录窗体,当我点击放弃按钮时,出现如下错误:
"0x00402f74"指令引用的"0x00dc0d78"内存。该内存不能为"read"
随后又出现如下错误
Runtime error 216 at 0004c148
这是为什么?
我附上我的源代码.
program Drawback;
uses
Forms,
messages,
windows,
Unit_Main in 'Unit_Main.pas' {Frm_Main},
Unit_DataModule in 'Unit_DataModule.pas' {DM_Drawback: TDataModule},
Unit_Login in 'Unit_Login.pas' {Frm_Login},
Unit_Sr_DR in 'Unit_Sr_DR.pas' {Frm_Search_DrawbackRate};
var
RvHandle : hWnd;
{$R *.RES}
var
LoginForm:TFrm_Login;
begin
Application.Initialize;
Application.CreateForm(TDM_Drawback, DM_Drawback);//数据模块
LoginForm:=TFrm_Login.Create(Application);
LoginForm.ShowModal;
if LoginForm.ModalResult=1 then
begin
Application.Initialize;
Application.CreateForm(TFrm_Main, Frm_Main);
Application.Run;
end;
end.
下面这段是放弃按钮的事件:
procedure TFrm_Login.AbortBitBtnClick(Sender: TObject);
begin
DM_Drawback.Search_ADOCon.Connected:=False;
Application.Terminate;
end;
请大家抽空帮忙看看!多谢!
问题点数:50、回复次数:16Top
1 楼wisenowa(最近比较烦)回复于 2001-10-25 11:25:44 得分 4
if LoginForm.ModalResult=1 then
begin
Application.Initialize;
Application.CreateForm(TFrm_Main, Frm_Main);
Application.Run;
end else
Application.Terminate;Top
2 楼eastxiang(飄)回复于 2001-10-25 11:25:48 得分 4
upTop
3 楼wisenowa(最近比较烦)回复于 2001-10-25 11:29:08 得分 7
使用ShowModal后一般不处理Modal中返回按钮的事件Top
4 楼bubble()回复于 2001-10-25 12:46:49 得分 0
to wisenowa:
Application.Initialize;一句话必须写在下面这段程序之前,否则报错“标记没有引用存储”
这是为什么?
Application.CreateForm(TDM_Drawback, DM_Drawback);
LoginForm:=TFrm_Login.Create(Application);
LoginForm.ShowModal;
Top
5 楼liang_z(千山一刀之忍者神龟)回复于 2001-10-25 12:54:15 得分 0
begin
Application.Initialize;
Application.CreateForm(TDM_Drawback, DM_Drawback);//数据模块
LoginForm:=TFrm_Login.Create(Application);
if LoginForm.ShowModal=1 then
begin
Application.Initialize;
Application.CreateForm(TFrm_Main, Frm_Main);
Application.Run;
end
else
Application.Terminate;
end.
Top
6 楼dongys_2000(dongys)回复于 2001-10-25 12:56:43 得分 8
把DM_Drawback.Search_ADOCon.Connected:=False;去掉试试Top
7 楼liang_z(千山一刀之忍者神龟)回复于 2001-10-25 12:59:49 得分 0
LoginForm:=TFrm_Login.Create(Application);//创建
LoginForm.ShowModal;//显示
//到这里,LoginForm已经Free,你再用下面这句:
if LoginForm.ModalResult=1 then
//就是引用无效地址! Top
8 楼songlichao()回复于 2001-10-25 13:02:43 得分 5
呵呵,我敢前定你用的是ADO.
if LoginForm.ShowModal=1 then
begin
....
end
else
begin
Application.Terminate;
Application.run;
end;
end.Top
9 楼lovewangj(lllll)回复于 2001-10-25 13:04:33 得分 5
照dongys_2000(dongys)说的试试。Top
10 楼bubble()回复于 2001-10-25 13:15:40 得分 0
噢,我可能没说清楚“标记没有引用存储”这个错误是在
LoginForm:=TFrm_Login.Create(Application);这句话之前如果没有写下面这句话出的错
Application.Initialize;
liang_z(千山一刀之忍者神龟):我用你的方法试了,还是报同样的错!
Top
11 楼Focus(西门大灌人)回复于 2001-10-25 13:31:36 得分 8
仔细跟踪进入程序模块内部
这种错误最好找了Top
12 楼liang_z(千山一刀之忍者神龟)回复于 2001-10-25 13:41:59 得分 8
我的这种写法在.dpr中应该是没有错的,
你的错误应该在其它模块中.Top
13 楼liang_z(千山一刀之忍者神龟)回复于 2001-10-25 13:45:31 得分 0
TO: Focus(老鱼)
帮我看看——MDI程序,子窗口在DLL中。。。一贴
TO:bubble
用你的贴子干这个很抱歉!Top
14 楼bubble()回复于 2001-10-29 11:21:37 得分 0
谢谢大家的帮助,我的问题解决了,过一会散分!Top
15 楼yxjjx(孤行者)回复于 2001-10-29 11:41:52 得分 1
来晚了Top
16 楼Liusp(夜深千帐灯)回复于 2001-10-29 11:58:17 得分 0
把把数据模块的创建放到主窗体创建之后
var
LoginForm:TFrm_Login;
begin
Application.Initialize;
LoginForm:=TFrm_Login.Create(Application);
LoginForm.ShowModal;
if LoginForm.ModalResult=1 then
begin
Application.CreateForm(TFrm_Main, Frm_Main);
Application.CreateForm(TDM_Drawback, DM_Drawback);//数据模块
Application.Run;
end;
下面这段是放弃按钮的事件:
procedure TFrm_Login.AbortBitBtnClick(Sender: TObject);
begin
Application.Terminate;
end;Top




