Delphi 的奇异之处!!!送100分,大家来看看!!!! 这个问题多半是由于if else 匹配错了造成的,比如if xxx then if yyy then do Thiselse do That;这个else对应的是if yyy的,建议对每段都加上begin end。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 恭喜你解决问题。你比有些人好多了,出了问题自己找程序的原因,而不是在这里大骂Delphi一通。呵呵恭喜发财,分数拿来 我怀疑过Delphi无数次,至今只有一次是对的。你还是好好查查自己靠得住。 To GoodHope(好望角):谢谢提醒,不过虽然我是菜鸟,可我还没有那么白痴!我确实是每段都加上begin end的!! 还有一种可能,用了with,调试器里看到的值是不带with的,看不到带with效果的。 To boilpoint(常用对数):呵呵,我当然不敢指望了!!不过我还想知道为什么。不知有没有高手能告诉我。 晕倒。逻辑错误都能指出来,delphi可以自己开发五子棋了,还用你在那里晕乎么? 呵呵,我根本没用WITH,那只是简单的判断一个简单变量的值而已。而且推理也告诉我,调试器的结果是对的。 我原来是用VC++的,但现在在用Delphi,就发现一个Source文件写下来了,但满眼看去,到处都是"begin" "end",感觉真是祖国江山一片,开始很不习惯,加这些东东实在不得已,怕if else 出错啊。你所说的情况实在是太神气了。I 服了 You! 恭喜!!!不过,有谁碰到过如下问题:var i:integer;beginfor i:=0 to 5 do//问题在这里,运行或跟踪调试时发现i从5降到0。 ...end; to clacklin(海风) :kao ,bu hui ba ,na ke bu shi "downto" o ~ 没有用with也可能会有作用域的问题。to clacklin这不是Bug,这是Delphi对代码的优化造成的,为了提高运算效率。如果你学过汇编就知道为什么了。同时,这绝对不会引起运算错误。 to clacklin:对对对,我那五子棋也遇到了!!!!for i:=1 to 4 do,从4降到1 !!!开始我没在意,因为顺序无所谓。可我改过那个错误之后发现,这个居然正常了!!!!!!!!!!!!!!!刚才我忘了说,呵呵!! 不会这么离谱吧????5降到0?????如果真这样,俺把delphi给一脚踢了 To GoodHope(好望角):不可能是作用域的问题,那只是一个局部变量,没有全局变量与之同名,且我也没用别人的模块,我的程序也只有一个模块(UNIT),我的函数是直接作为TFORM1的成员。 不会是downto ,因为这样根本不对i赋值,这种情况还是一般发生???我怎么没遇到过?? To autoboy(自动变菜):重启我也试过了。而且设过变量后没有用会有HINT,我的程序HINT,WORNING,ERROR都是0个。 如果是downto我就不会奇怪了。而且在同一程序在象这样的循环有不少,别的地方就不会。to natrium11(我是一只小小小小鸟),能否介绍您的经验? to GoodHope(好望角),我该循环是用于解码用的,每6个字节为一个信息字,象这样给它倒过来了,所有的编码和解码就全乱了。您说它会没影响吗? to natrium11(我是一只小小小小鸟),能否介绍一下您的那个“错误”? 不要怀疑,一定是你的程序的条件有问题,我就说这么多.你应该相信,是你错了,而不是Delphi,我的程序出现问题的时候,我都是这么想的. To clacklin(海风) 我也出现过for i:=1 to 4 do,从4降到1 !!!这种情况,当时我没在意,因为程序运行一切正常。关注 To clacklin(海风) & natrium11(我是一只小小小小鸟) :我也出现过for i:=1 to 4 do,从4降到1 !!!这种情况。巴我弄得头都大了好几圈。后来你们是怎么解决的啊?? 后来我的解决办法嘛,就是不用它,而连续写六行代码。:)如:i:=0;....inc(i);... to: natrium11我从Delphi1到Delphi5,只碰到过VCL的Bug,从未遇到Delphi编译器出错。建议好好检查自己的代码。to: clacklin虽然i的值是到过来,但是引用i的时候,Delphi会自动调整过来,就像tangliang说的那样,不会有问题。不信你看CPU窗口中的代码。有一种情况是例外,在内嵌汇编中引用i。 我在用bc3.1时有相似情况,当时是编译完成后发现有一句语句没有执行,当时特别奇怪,查了很久汇编码,发现有一条语句就是没有编译,最后还是不得已换方法了Delphi编译器出错还从没遇到 To clacklin:我那就是一个键入错误啊。如if a=4 then...我不小心,把4敲成5了。强调:这是另一个if,与我说的那一个没有任何联系。 To snjun(delphiyang):What do you mean,please? 关于 For 循环的问题,delphi的编译器判断如果循环顺序与逻辑无关,就会优化成 4 downto 1之类的,没有关系的。 同意GoodHope(好望角)碰到过VCL的Bug,从未遇到Delphi编译器出错。 有一回用Delphi一不小心往内存写了一个大字符串,结果从此Delphi的控制顺序就乱了,最后重装才解决。除此之外的编译器错误没遇到过 有时候Delphi4突然不让我设置断点,编辑器右部标志每行源代码可执行的小点也没有了,这是我的问题吗?如果是,该怎样解决呢? 这是你是程序不会执行到这里吧,这是废代码。to Nicrosoft(奈软),我是循环是与逻辑有关的,对我程序的影响很大。 我把这个贴子从头到尾看了一遍,就我个人的意见,总结一下:如果出现问题,相信delphi,你的代码有问题,这样可以比较快的发现错误。 我当然是相信delphi,在这里是想与大家讨论为什么会出现这种情况的。 同意clacklin(海风):我就是想知道为什么才开这个帖子的嘛!!!大家都不知道吗???? 看看这句话怎么会有问题(在线等)初学者 delphi 得到程序文件夹路径 本人对于读写锁上的理解,大家有疑问的可以过来看看,或许有帮助 AdoQuery与多表查询显示问题? 请教高人,如何自动去执行程序? 多窗口问题求助 ADOTabel1,DataSource1,DBgrid怎么得到DBgrid中双击行的所有字段的值? 救命呀,将DataModule打包.bpl后,该怎么在其它Form上用? 难题,制作的ActiveX组件如何接受asp从sqlserver image类型数据 关于Delphi6数据库的问题 各位大侠,有个线程中的问题,特别着急,46分送上! 我的delphi5无法编译
你比有些人好多了,出了问题自己找程序的原因,而不是在这里大骂Delphi一通。呵呵恭喜发财,分数拿来
谢谢提醒,不过虽然我是菜鸟,可我还没有那么白痴!我确实是每段都加上begin end的!!
呵呵,我当然不敢指望了!!不过我还想知道为什么。不知有没有高手能告诉我。
不过,有谁碰到过如下问题:
var i:integer;
begin
for i:=0 to 5 do//问题在这里,运行或跟踪调试时发现i从5降到0。
...
end;
to clacklin
这不是Bug,这是Delphi对代码的优化造成的,为了提高运算效率。如果你学过汇编就知道为什么了。同时,这绝对不会引起运算错误。
对对对,我那五子棋也遇到了!!!!
for i:=1 to 4 do,从4降到1 !!!开始我没在意,因为顺序无所谓。可我改过那个错误之后发现,这个居然正常了!!!!!!!!!!!!!!!刚才我忘了说,呵呵!!
而且设过变量后没有用会有HINT,我的程序HINT,WORNING,ERROR都是0个。
to natrium11(我是一只小小小小鸟),能否介绍您的经验?
我也出现过for i:=1 to 4 do,从4降到1 !!!这种情况。
巴我弄得头都大了好几圈。后来你们是怎么解决的啊??
如:
i:=0;
....
inc(i);
...
我从Delphi1到Delphi5,只碰到过VCL的Bug,从未遇到Delphi编译器出错。建议好好检查自己的代码。to: clacklin
虽然i的值是到过来,但是引用i的时候,Delphi会自动调整过来,就像tangliang说的那样,不会有问题。不信你看CPU窗口中的代码。有一种情况是例外,在内嵌汇编中引用i。
Delphi编译器出错还从没遇到
我那就是一个键入错误啊。
如
if a=4 then
...我不小心,把4敲成5了。强调:这是另一个if,与我说的那一个没有任何联系。
碰到过VCL的Bug,从未遇到Delphi编译器出错。
除此之外的编译器错误没遇到过
这是我的问题吗?如果是,该怎样解决呢?
to Nicrosoft(奈软),我是循环是与逻辑有关的,对我程序的影响很大。
如果出现问题,相信delphi,你的代码有问题,这样可以比较快的发现错误。
大家都不知道吗????