Project A.exe raised exception class EAccessViolation 项目引发异常类EAccessViolation,“模块‘ 地址访问违规”的纠错

本文主要是介绍Project A.exe raised exception class EAccessViolation 项目引发异常类EAccessViolation,“模块‘ 地址访问违规”的纠错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     一、问题表现

      1、打开二个主副关联数据表,由副表打印带图像表格后,点击主表(打开副表),出现下列错误:

      Project Best.exe raised exception class EAccessViolation with message 'Access violation at address 00402492 in module 'best.exe'.

      即:

      项目Best.exe引发异常类EAccessViolation,消息为“模块' Best.exe '中地址00402492的访问违 规”。

      二、检查代码

      1、出错代码行

  sName:=ClientDataSet1.FieldByName('姓名').AsString;

       2、打印代码

procedure TCertificate_Old_Frm.GridppReport8Initialize(Sender: TObject);
var S,FileName: string;
beginGridppReport8.LoadFromFile( ReportPath+'资格证书_身份证.grf' );with ClientDataSet2 dobeginFileName:=DBEdit1.text;if FileName<>'' thenbeginGridppReport8.ControlByName('Photo1').AsPictureBox.LoadFromFile(FileName);end;FileName:=DBEdit2.text;if FileName<>'' thenbeginGridppReport8.ControlByName('Photo2').AsPictureBox.LoadFromFile(FileName);end;S:=FieldByName('姓名').AsString+'(居民身份证),'+FieldByName('证书编码').AsString+',与原件一致。';GR1:=GridppReport8.AddParameter('说明1',grptString);GridppReport8.ParameterByName('说明1').AsString:=S;end;
end;

      三、分析原因

      1、从原代码看。原则上是无错误的。都能单独执行,无错误;

      2、执行打印代码,再执行读取 sName:=ClientDataSet1.FieldByName('姓名').AsString;

      3、地址的冲突,主要是引用时,地址的紊乱,造成这个结果的一个主要原因,就是VCL参数相同,引起的,如设置局部变量FileName,但是在VCL是,往往多个子参数是FileName,因此,顺着这个思路,在出现错误代码开始,向前推,检查代码。试着变化代码,测试是否出错。

      将打印代码中的局部变量FileName,改成要sFileMane。问题解决。

     四、思考

     在使用参数时,不要和Delphi的VCL使用的参数、变量、属性名称一致,在使用与VCL常用的参数、变量、属性名称相似时,要通过添加前缀或后缀的方法,改变名称,如: sFileName 或 FileName_1。养成良好习惯,可以避免一些,不必要的麻烦和出错。

      这里,关键是参数地址的冲突,在Delphi中,自身使用的一些参数名称上的冲突,时常出现。这些,往往是Delphi编译时的不严谨造成的,但作为编程者,应当规避。

这篇关于Project A.exe raised exception class EAccessViolation 项目引发异常类EAccessViolation,“模块‘ 地址访问违规”的纠错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/796499

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ