请教关于TCheckListBox的问题

jieyh 2005-10-29 11:30:56
我定义了一个结构
struct st
{
int a;
bool b;
};
在初始化TCheckListBox控件时我用如下语句
st* st1=new st;
for(int item=0;item<10;item++)
{
st1->a=item;
st1->b = item%2==0?true:false;
checklistbox1->AddItem("adsf",(TObject*)st1);
}
我在OnClickCheck中当选择不同是获取他的st1的值我用的语句如下但总是获取到最后一次增加的st1值
st* tempst = (st*)checklistbox1->Items->Objects[checklistbox1->ItemIndex];

我希望的结果是当选择第一个时
tempst->a=0;
tempst->b=true;
选择第二个时
tempst->a=1;
tempst->b=false;

但我在程序中获取的无论我选择第几项都是得到
tempst->a=9;
tempst->b=false;
请高手指点~~
谢谢!!!
...全文
208 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2005-10-29
  • 打赏
  • 举报
回复
同意shadowstar。

注意结束的时候释放资源也要在循环中。
jieyh 2005-10-29
  • 打赏
  • 举报
回复
范晕了,谢谢。
shadowstar 2005-10-29
  • 打赏
  • 举报
回复
得到的结果是显而易见的,你只用一个st1,得到的当然是最后一次赋值。


for(int item=0;item<10;item++)
{
st* st1=new st;
st1->a=item;
st1->b = item%2==0?true:false;
checklistbox1->AddItem("adsf",(TObject*)st1);
}

13,873

社区成员

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

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