易截截图软件、单文件、免安装、纯绿色、仅160KB

突然发现Delphi的for循环最后会把i还计算一遍!

procedure TForm1.Button1Click(Sender: TObject);
var
  i,k,n: Integer;
begin
  n:=0;
  k:=StrToInt(Edit2.Text);
  for i:=StrToInt(Edit1.Text) to k do
  begin
    n:=n+1;
    //if i=k then break;
  end;
  Edit3.Text:='i='+IntToStr(i)+' No: '+IntToStr(n);  //这里的i已经是比Edit2中的数字大1了,如果不加Break的话。
end;
赶快回头检查下之前的Code!!!!!!

哈哈

还好我不会在
for do begin
end;
后面再引用 I 的值。

你才知道

只有这样才能知道i是否已经超过了最大边界
比如
for i := 2 to 5 do
begin

end;
for这一句在汇编中是这样表示的  cmp ebx,$06,而不是$05

原因LS解释了

一般不要循环完了直接引用循环变量,DELPHI编译时已经给过警告了...

恩,知道了。

要是delphi给你优化成downto的话,还不知道是啥样呢

应该与编译有关

00457DA0 686A7E4500      push $00457e6a
00457DA5 64FF30          push dword ptr fs:[eax]
00457DA8 648920          mov fs:[eax],esp
Unit1.pas.33: n:=0;
00457DAB 33C0            xor eax,eax
00457DAD 8945F0          mov [ebp-$10],eax
Unit1.pas.34: k:=StrToInt(Edit2.Text);
00457DB0 8D55E4 


相关问答:

VC Delphi 内存速度比较 - VC/MFC / 非技术类

VC 控制台程序:
#include <iostream>
using namespace std;
int main()
{
const int def_buffer = 1024 * 4;
DWORD t;
BYTE b[def_buffer];
memset(b, 0, sizeof(b));
PBYTE p;
t = GetTickC ......

求delphi黑白棋代码

要求能实现二人在同台电脑上对战的 不用太花哨 最好还加上人机对战的 急需 谁帮下忙啊呀!!!!!!!!
up

baidu,google

up

http://www.codepub.com/software/view-software-4061.html 
网站上有
......

.net调用delphi写的dll,出错误

错误类型:出错误尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
C#源码
[DllImport("Base64.dll")]
public static extern string Base64ToStr(string Base64);
protected void Page_Load(o ......

delphi 2010 有破解的吗?给个详细的.

我怎么查了那么多说是能破解的.结果都不行.你们有没有呀.给我个详细的解决方案.下载哪个版本.破解文件,还有注册码
不清楚

下载官方光盘镜像,用delphidistiller1.85破解

到www.2ccc.com上去找delphidis ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号