13,825
社区成员
发帖
与我相关
我的任务
分享
void TfrmTest::tmr1Timer(TObject *Sender)
{
int Row = lv->Items->Count-1;
TListItem* Item = lv->Items->operator [](Row);
if( NULL == Item ) {
Item = lv->Items->Add(); Item->Caption = "0";
}
else {
int nCount = Item->SubItems->Count;
if( nCount >= 10 ) {
Item = lv->Items->Add(); Item->Caption = "0";
}
}
Item->SubItems->Add("1");//问题产生的行, ERROR:List Index out of bounds.
}
//在定时器中的函数。执行完后报list index out of bounds.
void TfrmMain::AddDatas(TAdvListView* lv, const AnsiString Str, int &Value)
{
int Port = Str.ToIntDef(0);
if( Port <= 0 ) return;
if( m_CommForms[Port]->MeasValue == Value ) return;
Value = m_CommForms[Port]->MeasValue;//这个值可以实时抄读上来的,没有问题。
// int Row = lv->Items->Count-1;
// TListItem* Item = lv->Items->operator [](Row);
// if( NULL == Item ) {
// Item = lv->Items->Add(); Item->Caption = "1";
// }
// else {
// int nCount = Item->SubItems->Count;
// if( nCount >= 10 ) {
// Item = lv->Items->Add(); Item->Caption = "1";
// }
// }
//
// AnsiString tmp = IntToStr(Value);
// Item->SubItems->Add(tmp);
TListItem* li;
static int i = 0;
if( lv->Items->Count > 0 )
li = lv->Items->Item[lv->Items->Count-1];
else {
li = lv->Items->Add(); li->Caption = i++;
}
if( li->SubItems->Count >= 9 ) {
li = lv->Items->Add(); li->Caption = i++;
}
else li->SubItems->Add(Value);
}
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
static int i = 0;
TListItem *li;
if (lv->Items->Count > 0)
{
li = lv->Items->Item[lv->Items->Count - 1];
}
else
{
li = lv->Items->Add();
li->Caption = i++;
return;
}
if (li->SubItems->Count >= 9)
{
li = lv->Items->Add();
li->Caption = i++;
}
else
li->SubItems->Add(i++);
}
for( int i=0; i<10; i++ )
Item->SubItems->Add("0");//此处还得设置个值,如果Add里面的内容是空的话,
//(即Add("")赋值方式)也是提示同样错误。