BCB非常奇怪的问题,望大家多指教:)

纪俊 2005-03-06 11:10:34
下面的语句是遍历菜单,看有没有Caption为moduleInfo的项,现在可以正常运行,但是...

int i=0;
bool haveItem=false;
int itemTag;
for(i;i<MainMenu1->Items->Count-1;i++){
if(MainMenu1->Items->operator [](i)->Caption==moduleInfo){
itemTag=i;
haveItem=true;
ShowMessage("haveItem=true");
}
}

下面的写法包括很多其他的写法都不能正常运行,我调试了下发现i根本就不从0开始,从14416开始而后会变成两万多所以就Out of Index了...奇怪啊~~更奇怪的是我单步跟踪会报错,而直接Run却不提示错误但是运行结果不对...

bool haveItem=false;
int itemTag;
int i=0;//只有这里从上面第一句放到了这里
for(i;i<MainMenu1->Items->Count-1;i++){
if(MainMenu1->Items->operator [](i)->Caption==moduleInfo){
itemTag=i;
haveItem=true;
ShowMessage("haveItem=true");
}
}
环境:XP Sp2+BCB 6 Sp4 请大家多多指教!
...全文
261 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
纪俊 2005-03-09
  • 打赏
  • 举报
回复
没人过问
结贴了
其实这个问题是我自问自答

“是不是我程序其他地方有错误造成这里的不稳定呢?”是的
是我在前边调用dll文件在得到函数时少了__stdcall造成的问题
milkwayhong 2005-03-08
  • 打赏
  • 举报
回复
Items->operator [](i)
转义 操作符【】
等同Items[i]
Sephil 2005-03-08
  • 打赏
  • 举报
回复
for (int i=0...
operator的哪个没问题,用法不同而已
纪俊 2005-03-08
  • 打赏
  • 举报
回复
这个问题我已经解决了
答案就在前面所有的回答中哈
大家快来抢分喽...回答对是谁回答正确才有分哈
magicsnake 2005-03-08
  • 打赏
  • 举报
回复

开一个新工程试试看,是不是也是这样的结果?
纪俊 2005-03-08
  • 打赏
  • 举报
回复
呵呵~~~
看来是没人能解喽
pxjdream 2005-03-07
  • 打赏
  • 举报
回复
Items->operator [](i) 是什么意思啊?
c语法里面的么?
我怎么没见过这么用啊?
hsanyu 2005-03-06
  • 打赏
  • 举报
回复
同意楼上的
constantine 2005-03-06
  • 打赏
  • 举报
回复
改这个位置没有什么关系啊 ,真奇怪了
你 干脆
for(int i=0;i<...)
这样写,不用理他放再哪里好了
gzlcd 2005-03-06
  • 打赏
  • 举报
回复
Items->operator [](i)?
第一回见到这样的写法,感觉有点怪,没必要吧?
纪俊 2005-03-06
  • 打赏
  • 举报
回复
回楼上:Items->operator [](i)不就是你用的Items[i]的意思么,不同的写法而已
samchoy 2005-03-06
  • 打赏
  • 举报
回复
operator []不是这样用的,要写成MainMenu1->Items[i]->Caption
纪俊 2005-03-06
  • 打赏
  • 举报
回复
to:楼上两位
改这个位置没有什么关系啊 ,真奇怪了
你 干脆
for(int i=0;i<...)
这样写,不用理他放再哪里好了
//这么写也是不行的,我真是晕死了,是不是我程序其他地方有错误造成这里的不稳定呢?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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