for中出现了UFO之事?

浮生若梦_平淡为真 2010-03-18 08:31:20
PDWglRecord = ^TDWglRecord;
TDWglRecord= packed record
ACol:longint;
ARow:longint;
end;
TDWglAr=array[MINA..MAXA] of TDWglRecord;//

gline:array[1..4,1..2] of integer;//画直线
glcellx:TDWglAr;

for gi:=1 to 4 do //////
begin
glcellx[gi].ACol:=gline[gi,2] + 2 ;
glcellx[gi].ARow:=gline[gi,1];
gdrid.DWLineA[gi]:= glcellx[gi];
gline[gi,1]:=0;gline[gi,2]:=0;
end;
glx:=0; //如果加 gi:=5 怪了
for gi:=5 to 8 do //问题所在
if gcell[gi,1] <>0 then begin
glx:=glx+1;
gline[glx,1]:=gcell[gi,1];
gline[glx,2]:=gcell[gi,2];
end;

大家看上面的代码,真是奇怪了,我调试老是出错,到第2个for gi就等于 4 (明明这样了啊for gi:=5 to 8 do)
更奇怪的是 如果在其上家gi:=5;那么下来第二个for就是递减.郁闷,怪啊!

大家测试一下看不是是啊

上面那段代码我是写在一个函数中,变量申明我写在上面了,这2个for就是这样,中间没有其他代码.
...全文
73 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQLDebug_Fan 2010-03-18
  • 打赏
  • 举报
回复
编辑框上面有个#号的按钮,就是粘贴代码的。
  • 打赏
  • 举报
回复
谢谢大家,其实我测试结果是对的,但是调试看不对,我纳闷呢?顺便问题下 怎么粘贴代码上来啊
dinoalex 2010-03-18
  • 打赏
  • 举报
回复
我也测了,没问题
SQLDebug_Fan 2010-03-18
  • 打赏
  • 举报
回复
我测试了你的代码,是DELPHI里的查看变量的BUG,程序结果是正确的。

type
PDWglRecord = ^TDWglRecord;
TDWglRecord = packed record
ACol: longint;
ARow: longint;
end;
TDWglAr = array[0..100] of TDWglRecord;

procedure TFmMain.btn1Click(Sender: TObject);
var
gline: array[1..4,1..2] of Integer;//画直线
glcellx: TDWglAr;
gi, glx: Integer;
begin
glcellx[1].ACol := 100;
glcellx[1].ARow := 100;
for gi:=1 to 4 do //////
begin
glcellx[gi].ACol:=gline[gi,2] + 2 ;
glcellx[gi].ARow:=gline[gi,1];
//gdrid.DWLineA[gi]:= glcellx[gi];
gline[gi,1]:=0;gline[gi,2]:=0;
end;
glx:=0; //如果加 gi:=5 怪了
for gi:=5 to 8 do //问题所在
begin
//if gcell[gi,1] <>0 then begin
glx:=glx+1;
//gline[glx,1]:=gcell[gi,1];
//gline[glx,2]:=gcell[gi,2];
//end;
end;
end;
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dinoalex 的回复:]
setlength
[/Quote]

我这不是动态数组,我说的是变量gi在for中的问题,gi只是个integer变量,奇怪的是2个for一起的话并且变量名一样好象就出问题了,循环变量就出错,是不delphi编译器的问题啊,delphi7下测试的
dinoalex 2010-03-18
  • 打赏
  • 举报
回复
setlength
让你的驾驶体验很棒。 -------------------------------------------------- --------------:sparkles:AwesomeDrive:trade_mark:将Microsoft Office:trade_mark:带入您的Google Drive:trade_mark:★从Google Drive的“新建”菜单创建新的Microsoft Office文件★无需手动下载Microsoft Office文件也无需手动下载编辑后将其上传★只需单击一下即可打开和编辑您的Microsoft Office文件★与Microsoft Word,Excel和Powerpoint配合使用------------------------- ---------------------------------------:raised_hand:要求✓Windows与Microsoft Office 2010、2013或2016或带有Microsoft Office 2011或2016的macOS✓小于32MB的Microsoft Office文件---------------------------------- ------------------------------:alien:通用文件打开器AwesomeDrive可以与我们的通用文件打开器(UFO)扩展程序结合使用您可以:★使用本地软件程序打开任何类型的文件,进行编辑并将其保存回Google云端硬盘★使用旧版本的Microsoft Office★摆脱32MB文件大小限制ly作为公共Beta版免费提供。在测试期结束时,AwesomeDrive用户可以选择按月购买UFO功能。了解详情:https://goo.gl/MMDrbM -------------------------------------- --------------------------:locked:权限AwesomeDrive扩展程序需要一组权限才能与您的Google云端硬盘进行交互 ➤在drive.google.com上读取和更改数据,允许在Google云端硬盘页面的“新建”菜单添加条目,以便创建新的Microsoft Office文件。允许将鼠标悬停在Google云端硬盘项上添加新的操作按钮,以便您可以使用本地软件程序对其进行编辑 ➤显示通知允许在系统任务栏创建和显示丰富的通知:仅用于在身份验证流程出现错误时通知您 ➤与合作网站进行通信允许我们的OAuth2身份验证网页安全地连接到扩展程序(向扩展程序发送消息并从获取答案) -------------------------------------------------- --------------:person_raising_hand:支持AwesomeDrive是免费提供的,但是如果您遇到任何问题,我们将很乐意为您提供帮助。您可以通过我们的Facebook社区页面(https://www.facebook.com/AwesomeDrive-Community-812265129132888)与我们联系。感谢您的阅读!我们希望您会喜欢AwesomeDrive扩展! 支持语言:English,Français,español,italiano,magyar,português (Brasil)

16,748

社区成员

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

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