delphi7开发工具这么不好???

sdudubing 2012-09-26 03:20:46
今天调试代码时遇到这么个恶心问题,感觉不能理解......

function getclient(termid:string;moterid:string):TSimpleClient;
var
i:integer;
begin
{$IFDEF debuger}
CodeSite.EnterMethod('getclient');
{$ENDIF}
if cici=true then
exit
else
begin
//mainform.LogAddText('getClientByUserid');
with clientlist.LockList do
begin
//mainform.LogAddText('LockList');
for i:=0 to count-1 do
if ((TRIM(TSimpleClient(items[i]).moter)=TRIM(moterid)) and (TRIM(TSimpleClient(items[i]).term)=TRIM(termid))) then
begin
result:=TSimpleClient(items[i]); //调试时resule得到的结果不是nil
clientlist.UnlockList;
//mainform.LogAddText('UnLockList');
{$IFDEF debuger}
CodeSite.SendMemoryAsHex('client',@Result,sizeof(TSimpleClient));
CodeSite.ExitMethod('getclient');
{$ENDIF}
exit;
end;
end;
clientlist.UnlockList;
//mainform.LogAddText('UnLockList');
end;

result:=nil;
{$IFDEF debuger}
CodeSite.SendMsg('nil');
CodeSite.ExitMethod('getclient');
{$ENDIF}
end;

在clienttmp:=getclient(termid,moterid);调用上述函数时,内部getclient的result得到的不是nil,而结果clienttmp却是nil,不能理解......然后我重新定义了一个和clienttmp类型一样的变量stateclient,却能正常运行了....此处clienttmp是局部变量,内部其他地方没有引用,真有点搞不懂......
...全文
157 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdudubing 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

内容我没看,我看了标题进来的,我最受不了一些人自己技术不好把责任推在编译器上了。就是真有你说的问题,你技术好你换个思路做啊,再有本事,你写编译器去啊。天天就会抱怨,跟个怨妇似的。
[/Quote]
额,哥们牛逼。。。。。。结贴了
hsfzxjy 2012-09-26
  • 打赏
  • 举报
回复
顶楼上。。
  • 打赏
  • 举报
回复
内容我没看,我看了标题进来的,我最受不了一些人自己技术不好把责任推在编译器上了。就是真有你说的问题,你技术好你换个思路做啊,再有本事,你写编译器去啊。天天就会抱怨,跟个怨妇似的。
sdudubing 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

function getclient(termid:string;moterid:string):TSimpleClient;

是 TSimpleClient


result

是 TSimpleClient(items[i]);
[/Quote]
没明白您说的什么意思?
sdudubing 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

#4是正确答案。
[/Quote]
同上
sdudubing 2012-09-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

你函数退出前不都result:=nil;了吗,怎么不能理解呢?
[/Quote]
您仔细看下代码吧,在内部有exit......
pathletboy 2012-09-26
  • 打赏
  • 举报
回复
#4是正确答案。
  • 打赏
  • 举报
回复
你函数退出前不都result:=nil;了吗,怎么不能理解呢?
cjs5210 2012-09-26
  • 打赏
  • 举报
回复
将就用
haitao 2012-09-26
  • 打赏
  • 举报
回复
可能是优化模式的缘故?关闭优化试一试
爱蹄子的羊头 2012-09-26
  • 打赏
  • 举报
回复
function getclient(termid:string;moterid:string):TSimpleClient;

是 TSimpleClient


result

是 TSimpleClient(items[i]);
CnPack是什么? CnPack是一个仍在筹划开发中的Delphi第三方开发包:-) ,它的全称是 CnPack For Delphi 开发包。 与一般的控件包不同的是,CnPack开发包除了包括大量的组件外,还包括用于IDE扩展的专家包、大量的通用窗体库、数据桌面、组件编写工具等辅助开发工具,以及一个版本控制系统等等与Delphi软件开发相关的代码、文档和程序。 CnPack由网上的自愿者们组成的CnPack开发组制作,是一个典型的网上合作开发项目。 CnPack是一个完全符合GPL LGPL协议的自由程序库。 CnPack开发组将用2002年全年甚至更长的时间来完成这一开发计划。 为什么要开发CnPack呢? Delphi以其完全开放的VCL体系吸引了很多的程序员,通过使用第三方的代码和控件,可以极大的提高软件开发效率。然而,在大量的优秀控件中,由中国程序员制作的却少得可怜。除去商业控件包不说(恕小弟识浅,哪位朋友见过国产的商业控件包吗?),国内有多少控件包可以和RxLib、GExpert、FastReport、FlatStyle等这些免费、共享包相提并论?CnPack的计划就是集中大家的力量制作一个真正优秀的大型开发包,同时提供大量的代码和文档让Delphi程序员参考和学习。我想,不需要我做太多解释,大家也能理解开发CnPack的意义:1、对程序员用户而言,首先,开发包所有文档、注释都将使用中文编写,这对很多E文不好的程序员来说绝对是一件好事。其次,技术支持和学习交流将变得方便,有多少人可以从国外获得控件包的技术支持呢?当然,前面两点国产优势都是次要的,CnPack的设计目标是一个真正功能强大、实用的开发包,能帮助程序员更方便地做出好的软件。 2、对开发人员而言,通过开发,可以对Delphi的系统结构有更深的认识,并从中学到大量的经验和技巧,而多人协作开发的经验亦是非常有用。更重要的是,我们将以自己的实际行动证明,中国的Delphi程序员并不比外国的差。CnPack包括些什么内容? 在开发计划中,CnPack包括了Delphi程序设计相关的很多方面:不可视工具组件包。 用户界面控件包。 符合中国人使用习惯的数据库、报表组件包。 网络通讯组件包。 本地化、扩展的属性、组件编辑器。 IDE扩展专家工具包。 CnVCS版本控制系统。 本地化、功能强大的数据桌面、资源编辑器、组件编写工具等辅助开发工具。 大量可重用的窗体模板库。 而在正式的开发中,将根据具体情况进行调整,详细的内容参见开发资料中相应部分。
汉化说明 与许多初学者一样,我在开始学习Delphi时,面对全英文的界面,很是不习惯。在Delphi5.0时就开始对Delphi进行汉化。但效果并不明显,也就没好意思拿出来。但心中总是感到有些遗憾,为什么Delphi这样好的编辑工具,始终不推出简体中文版呢? 一直等到Delphi7.0时,Smallfish终于等不住了,为了Delphi在华夏大地上的传播与推广,SmallFish决定自己动手,汉化出真正属于中国人的简体中文Delphi程序开发工具。 SmallFish通过几个星期的艰苦奋战,在Delphi7.06的英文版的基础上,终于推出了现今汉化最好的Delphi7.0简体中文版。 Delphi7资源汉化包的源文件 其中SmallFish汉化的部分是*.bpl、*.exe及其它文件,而Lib中的文件及Source文件夹中的文件是LiWD完成的,我也加到了我的文件夹中,在此表示感谢!为了表示对他劳动的尊重,将他汉化时的文字在后面附加了。 下面,向大家介绍一下使用方法,首先关闭Delphi7.0的运行,打Winsystem文件夹下的所有文件,覆盖到系统目录下(如C:WindowsSystem);然后,将Bin、Lib文件夹下的所有文件覆盖到Delphi安装目录的Bin中。至于Source文件,可以覆盖到相应文件夹中,也可以不做任何操作。 为了减少大家的开支,我将文件的大小尽可能缩小,也不得已使用可执行程序压缩工具对.Exe文件、.Bpl文件进行压缩。但还是很大,请大家原谅。如果想修改,可以以下面的邮件地址向我索取没有压缩的文件,我会抽时间发给你们。 最后,要说明的是,汉化到现在,发现要推出完全汉化的Delphi,以我的精力和能力来说,还要等一定时间。因为需要汉化的资源太多,以典型安装为例,可能需要汉化的文件多达200个左右,而且是都是DELPHI程序,无法借助字典批量翻译,工作量实在巨大。同时随汉化的深入,发现许多要翻译的字符没有把握准确译出,恐怕翻译后让大家更糊涂,加上马一就要毕业答辨,我只好暂时把汉化工作停一下,只是将手头现有的部分拿出来与大家共享,因水平有限,翻译错误在所难免,请不吝指教!以便我日后推出汉化Delphi时,做最后的修正。 我汉化Delphi不是为了出名。没有任何商业目的,不希望出现Delphi简体中文版应用于商业的现象发生,但为了表明大家对我的工作尊重,也不要修改我在可执行文件版本信息中加的一行字-汉化:SmallFish。如果向朋友推广,也不要把我编写的汉化说明删除,我只是想通过这样的一个难得机会,结识更多像我一样酷爱Delphi的网友。 如果你有什么好的建议,请给我发电子邮件电子邮件地址SmallFish@0335.net或LiYuguo@0335.net,我尽量抽时间回答网友的提问。不要向我要Oicq或其它联系方式,恕我不公开。常见问题: 1.为什么汉化Delphi7.0在运行时菜单没有快捷键但按下Alt键后,就有了。能不能改进一下? 答:这是Delphi7.0本身的原因,并不是我汉化资源文件有误,不信你将Delphi原文件覆盖回去试试,一样存在此问题。 2.为什么编译信息一部分是英文,另一部分是中文? 答:这是因为我汉化不完全造成的。 3.什么时候会推出Delphi7.0的其它汉化资源? 答:时间不会太长,只要大家支持。 4.如果我向你的信箱中发送其它控件的汉化请求,能不能帮我完成? 答:如果时间允许,控件好用,我会满足您的要求,但有一个条件,留下您的联系方式,交一个朋友。:)附:网友LiWD原文汉化说明 这是Delphi7的一些资源文件的汉化,是我从Delphi6改编的,由于英文水平有限,错误在所难免,并且有些单元没有汉化,如果你修改或汉化了其他单元,别忘了给我一份! 用Delphi7 打开 Project1.dpr, 进行编译,即可得到相应的dcu文件! 上传:李岚文 QQ:270181856 E_-mail:llw.lz@126.com 曾上传作品:柯龙进销存 希望能给初学Delphi 7的朋友带来帮助 ^_^

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧