首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi7开发工具这样不好?

2012-10-11 
delphi7开发工具这么不好???今天调试代码时遇到这么个恶心问题,感觉不能理解......Delphi(Pascal) codefun

delphi7开发工具这么不好???
今天调试代码时遇到这么个恶心问题,感觉不能理解......

Delphi(Pascal) code
    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是局部变量,内部其他地方没有引用,真有点搞不懂......

[解决办法]
function getclient(termid:string;moterid:string):TSimpleClient;

是 TSimpleClient


result 

是 TSimpleClient(items[i]);
[解决办法]
可能是优化模式的缘故?关闭优化试一试
[解决办法]
将就用
[解决办法]
你函数退出前不都result:=nil;了吗,怎么不能理解呢?

[解决办法]
#4是正确答案。
[解决办法]
内容我没看,我看了标题进来的,我最受不了一些人自己技术不好把责任推在编译器上了。就是真有你说的问题,你技术好你换个思路做啊,再有本事,你写编译器去啊。天天就会抱怨,跟个怨妇似的。
[解决办法]
顶楼上。。

热点排行