Login

020-143-4547ayx@fsjhgy.com

  1. 爱游戏 > 新闻动态 > 媒体报道

编程问题及解决方法经典

作者:小编 日期:2024-07-17 06:24:46 点击数:

  1、开发环境:BC6.0 问题 1:采集过程中 CPU 占用为 100% 的问题 问题 2:如何保证从串口获取某一数据整数倍的字节数据? 问题 3 :在对长序列进行中值滤波时,总是出现内存不足的错误 问题 4:当在 TTimer 事件响应程序中增加了一段代码后,程序不能正常运行。 问题 5:调用 TForm 的 ShowModal()方法时,出现“Cannot make a visible window modal”错误提示信息。 问题 6:字符串与空串的比较问题 问题 7:关于路径分割问题BORLAND 第三方组件安装方法第三方组件安装方法 如何获取当前可执行文件的目录? 如何使 TChart8.0 控件显示中文?动态分配空间注意事项符号函数 Sign 的使用2008 年 10 月 10 日星期一 本程序串口通讯使用了串口通讯组件,该组件为下载的第三方组件,使用方法通过自 己摸索,现已基本掌握。该组件源代码包括 comm.cpp,comm.dcr,comm.h 三个文件。使用时, 首先要安装组件,然后在 samples 组件列表中出现该通讯组件图标。使用该组件的方法同 其他组件,但是必须

  2、将源代码复制到你的源程序目录中。 使用该串口通讯组件时,一定要注意将正确的参数传递给组件,参数的设置一定要与 组件的参数定义一致(可通过察看源代码来确定组建参数的设置) 。我在使用过程中,就是 由于参数设置不一致,导致了数据传递(波特率)错误,是信号不能正确发送和接受。 2008 年 10 月 20 日星期一 增加了峰值显示功能、扣除基线 日星期五 增加了扣除背景(基线) 、分页/全显功能、数据保存/读取/数据导出功能; 问题 1:采集过程中 CPU 占用为 100% 的问题 解决了在采集过程中 CPU 占用为 100% 的问题,这导致了程序不能正常操作问题。该 问题与不断更新 RichEdit 组件标题,而组件标题越来越长有关。通过改用 AnsiString 变量 保存 RichEdit 窗口内容,用 richedit-Lines-Add()来改变 RichEdit 窗口内容,问题解决。问题 2:如何保证从串口获取某一数据整数倍的字节数据?首先判断缓冲区可读字节 数,然后求得整数倍的数据值,该数据值要小于缓冲区可读字节数,然后进行读缓冲区操 作。

  3、问题 3 :在对长序列进行中值滤波时,总是出现内存不足的错误,而检查程序没有发 现错误?中值滤波使用了三层循环,对堆栈空间消耗较大,在 project/option/linker 表中调 整最大栈大小(Max stack size ) ,由 0x100000 调整为 0x400000,问题解决。 问题 4:当在 TTimer 事件响应程序中增加了一段代码后,程序不能正常运行。现象 是程序运行后 CPU 占用 100%,一会儿报错。这段代码完成去除采样信号的无效的头数据, 其算法是首先判断采集到缓冲区数据的个数,当数据个数已达到无效数据个数时,从缓冲区读出无效数据。去掉这段代码后,程序运行依然正常。TTimer 事件响应程序中调用了 TChart 控件,错误信息只与 TChart 控件有关。问题出在哪里呢? 分析:通过跟踪,增加代码没有问题,可以正常通过。判断问题与程序代码无关,可 能与采集到的数据有关,影响到 TChart 控件的正常运行。由于是空采集,采集到的数据都 是 65535,由于数据都相同,从而导致 TChart 控件运行不正常。修改程序,当采集到的数 据都是 65535 时

  4、,改变其中一个数据值。修改后程序运行正常,问题解决。2008 年 11 月 14 日星期五 今天遇到了一个问题,当进行中值滤波时,出现指针错误。跟踪发现,错误是在滤波 模块运行结束后出现的,这说明与滤波程序无关。后来发现滤波后数据要在 TChart 控件上 显示,而滤波结果为 65535 组成的常数序列,因此导致了问题 4 的错误。 2008 年 11 月 24 日星期一当从历史数据文件中读取数据进行显示时,欲想将数据显示于监视对话框,当数据个 数较大时,将花费很长时间(10 万数据大约 1 分钟) ,这是由于将数据转换为文本数据时, 利用 ansiString 类型变量保存转换的文本数据,该变量存储字符数越多,处理速度就越慢, 占用 CPU 时间也越多。解决办法是转换一部分数据后,马上放入数据显示区显示,然后再 清空 ansiString 变量。2008 年 12 月 8 日星期一峰值条件:满足下列条件的值为峰值,横坐标为峰值点。 ixfix爱游戏官网, 1iixfxf 1iixfxf thresholdxfxfii10 thresholdxfxfii102009 年 5 月 13 日星期三

  5、C+Builder6 源代码组件安装步骤:执行/Component/Install Component/,在对话框中选 Into new pakages 页面,在 Unit file name 编辑框输入组件文件名(路径comm.cpp),Pakage file name 编辑框输入组件包文件名(例如 路径SeriesComm.bpk) ,Pakage description 编辑 框输入说明性文字,单击 OK 按钮,即可进入 Pakage 对话框,单击 Compile 按钮编译组件, 单击 Install 按钮安装组件。BORLAND 第三方组件安装方法第三方组件安装方法 (资料来源:学网(),原文地址:http:/ 不是由 BORLAND 提供的组件叫第三方组件: 安装方法: 就目前常见的各种形式的组件的安装方法介绍一下。 1 只有一个 DCU 文件的组件。DCU 文件是编译好的单元文件,这样的组件是作者不想把 源码公布。一般来说,作者必须说明此组件适合 Delphi 的哪种版本,如果版本不对,在安 装时就会出现错误。也正是因为没有源码,给使用者带来了不便,那就是一旦 Delphi

  6、 版本 升级,此组件就不能再使用了,当然有的作者给出了几种版本的 DCU 文件,用户根据需 要选择使用。这样的组件的安装方法是:在 Component 菜单中,选择 install component,在对话框 “into existing package“页中,单击“Unit file name”后的“Browse”按扭,在打开的文件对 话框中,将“文件类型”设定为*.dcu,找到要安装的 DCU 文件,按 OK 按钮返回“into existing package“页后再按 OK 按钮就可以安装了。注意,此时 Delphi 会提示 dclusr40.dpk 将被重建,是否继续,OK 就可以了。这里是将组件安装到 dclusr40.dpk 包中,此包从文件 名上可以看出是用户自定义组件包,先安装到这个包中吧,下面再讲有关注意事项。安装 完毕会有已经将组件注册完的提示信息以及安装到哪个组件页中的信息等,到组件面板上 看看,一般会出现一个新的组件页,其中有刚安装的组件。 2、 只有 cpp 文件或既有 cpp 又有 DCU 文件的组件。这种组件因为有 cpp 文件,也就是说 作者提供了源

  7、码,这就好办多了。安装的方法和上面是一样的,在文件类型中可以设定为 DCU 也可以设定为 cpp,建议设定为 cpp,这样可用你的 C+Builder 重新编译一下,看是 否会出现问题。C+Builder 升级后只能选择 cpp 文件安装,这样才能重新编译,使得组件 能适应新 C+Builder 版本。这样的组件是很值得使用的,根据心铃的经验,没有源码的组 件最好不要使用,一是存在 C+Builder 版本升级后无法使用的问题,再者当程序出现问题 后用户无法调试组件来判断是否是组件中存在 BUG。 3、有 dpk 文件的组件包。带有 dpk 文件的组件包一般是有多个组件构成的,也就是说安装 后会有多个组件供使用,如果只有一个组件作者一般不会制成 DPK 文件,使用上面的方式 发布就可以了。对于这样的组件包,一般来说会有详细的安装说明文件,如上面提到的 RXLIB,由于组件复杂且安装时有先后顺序,作者不提供安装说明用户根本无法正确安装。 如果没有安装说明文件,那么用下面的方法安装:在 File 菜单下,选择”OPEN”打开 dpk 文件(文件类型列表框中选*.dpk),在出现的 Pack

  8、age 窗口中,工具栏上有 Install 按钮, 按此按钮即可进行安装。如果 Install 按钮处于无效状态,那么先按 Compile 按钮编译,一 般来说编译之后 Install 按钮就会处于有效状态,此时再按 Install 按钮就可以了。 4、 带有 Bpl 文件的组件包。一般来说这也是由多种组件构成的组件包,它其实是一个动 态连接库文件(DLL) 。对于这种组件包的安装方法是:在 component 菜单下选择“install packages” ,然后单击 Add 按钮,在打开的文件对话框中找到相应的 bpl 文件打开返回后, 再单击 Ok 按钮就可以了。 5、ActiveX 控件的安装。要安装这类控件,需要先用 regsvr32.exe 注册,然后选择 Component 菜单中 Import ActiveX Control 项。在 Import ActiveX Control 打开的窗口中,只 有已经注册的 ActiveX 控件才出现在列表中,选中一个然后按 Install 按钮就可以安装了。 如果事先没有用 regsvr32.exe 注册也可以按 ADD 按钮找到

  9、OCX 文件即时注册,注册后再 进行安装。 几点说明: 1 在拿到组件后先看是否有说明文件,一般来说在说明文件中有如何安装的指导,有些还 会有组件的属性、事件、方法的使用说明,这些在使用时是非常重要的。 2 在上面的组件(包)安装操作之前,最好将 *.bpl 拷贝到你的 System 目录中,将 *.cpp、*.dcu、*.dcr、*.dp?拷贝到 C+Builder 的 Lib 目录中再进行。 3 前面我们提到安装 DCU 组件时,选用的是已经存在的 dclusr40.dpk,当然也可以选择 安装到一个新的包中,如果选择新包,需要先取一个名字比如 DEMO,事实上安装完毕后 用户可以找到的是 Demo.bpl,而找不到 DEMO.DPK。假如你已经将一个组件安装到 dclusr40.dpk 中了,还想再安装一个组件,如果再安装到 dclusr40.dpk 中,安装后你得到提 示,原来安装的那个组件已经被取消注册,你将无法使用了。这样不就成了只能安装一个 组件了吗?除非你再安装到一个新的包中才可以两个组件同时使用。当然每安装一个组件 生成一个新的 BPL 文件也未偿不可,但 BPL 文件就增加许多。能否在 dclusr40.dpk 中多安 装几个组件呢?当然是可以的。方法如下:用 File 菜单下的 OPEN 打开 dclusr40.dpk 文件,单击 ADD 按钮,在打开的对话 框中选择 ADD UNIT 页面,按 Unit file name 后的“Browse”按钮打开组件单元文件,OK 即可,用此种方法这样可添加多个组件的单元文件,添加完毕,按一下编译按钮,然后再 按 Install 按钮即可,如果单元文件是编译好的(DCU)可以直接按安装按钮。 4 组件的删除。光会安装可不行,还要会删除呀。很简单,在 component 菜单下,选择 install packages,在列表中找到安装所在的 Bpl,按 Remove 按钮,ok!再把 Bpl 文件删掉 就彻底了,如果不删除 BPL 文件,下次可以按安装 BPL 组件的方法再安装使用2010 年年

  《编程问题及解决方法经典》由会员小**分享,可在线阅读,更多相关《编程问题及解决方法经典》请在金锄头文库上搜索。

  + 2、如你看到网页展示的文档有印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识,下载后原文更清晰;

  + 3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;

  + 4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

  + 5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;

  + 6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。; $(#c1).html(dt);点此查看常见问题TA的资源


随便看看