CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

我做的程序,总是报错!欲知详情,请进!

楼主bubble()2001-10-25 11:23:11 在 Delphi / VCL组件开发及应用 提问

我的程序运行时,首先弹出的是登录窗体,当我点击放弃按钮时,出现如下错误:  
  "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

相关问题

  • 启动程序时报错
  • 小程序报错,但不知错在什么地方,欢迎参观
  • 运行程序总是报错 “Stack overflow” !!!
  • 连接unicode版程序时报错
  • 这个程序为什么报错?
  • 运行程序的时候报错:(
  • 简单程序报错不简单!
  • 程序报错 高手过来看
  • C++ Primer中的程序编译报错
  • 程序报错?说找不到类?

关键词

  • 模块
  • application
  • 数据
  • search
  • tfrm
  • loginform
  • drawback
  • createform
  • showmodal
  • modalresult

得分解答快速导航

  • 帖主:bubble
  • wisenowa
  • eastxiang
  • wisenowa
  • dongys_2000
  • songlichao
  • lovewangj
  • Focus
  • liang_z
  • yxjjx

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo