我今天写了一段代码, for dw:=0 to dwItemCount-1 do
begin
.....
end;
if dw = dwItemCount then我运行的时候,发现我的dw的值竟然是 3347440。
晕。。怎么回事?
begin
.....
end;
if dw = dwItemCount then我运行的时候,发现我的dw的值竟然是 3347440。
晕。。怎么回事?
解决方案 »
- Delphi如何用循环语句读取同一个文件夹里的所有文本文件的内容并将其写到Memo组件中
- sleep会对ADOConnection连接造成影响吗?
- Access数据库网络访问出现数据库不能识别问题?
- delphi中怎样才能取得 SQLSever 2000中text 字段类型得值呢?
- 我的是DELPHI 7,但我找不到可正确安装的第三方控件,请问有没有这种插件?怎样DOWNLOAD?
- image型字段的显示问题,在线等待。
- COM+组件在Delphi中调用问题,急求解!!!
- 如何撰写需求分析报告、总体设计报告?
- 自编报表编辑器过程中的问题(谢绝低手入内)
- 一个问题的探讨??
- 简体的字在繁体下如何显示?
- 关于一个SQL语句书写的问题,大家帮帮忙!
/////////////////////////////////////////
if dw = dwItemCount then
我取的是listCtrl的记录个数
循环之后不要使用循环变量,由于 Delphi 的内存优化,它的值已经无效
begin
.....
end;
if dw = dwItemCount then
////////////////////////////
dw 在做循环变量的时候是压到栈里边的,编译器要对其进行优化,
如果你的循环体中没有使用到 dw,你还会发现dw 是从dwItemCount-1 降到 0
的
Integer值,delphi 不会初始化为 0
String 却是自动初始化为'' 的
不对的地方请指教
SaveDW : Integer;
Begin
SaveDW := 0;
for dw:=0 to dwItemCount-1 do
begin
.....
SaveDW := DW; //退出时保存
end;
//注,用于FOR循环的变量,在外面取值有时会出错.所以在退出时要先另外保存起了.
//相信楼主的代码在编译时会有警告提示. if Savedw = dwItemCount then