ValueListEditor组件应用实例(二)

       在上一将的基础上, 接下来就可以编写button的响应事件了。

      双击“删除”按钮进入响应事件的编写。
      整个“删除”按钮的代码如下,水平有限,这里我就不用仔细解释了。

void __fastcall TForm2::Button1Click(TObject *Sender)
{
  int row;   //记录当前焦点的行号
  //获得焦点
  ValueListEditor1->EditorMode = true;
  ValueListEditor1->SetFocus();
  //获得焦点行号
  row=ValueListEditor1->Row ;
  //删除该行
  ValueListEditor1->DeleteRow(row);
  //自定义函数,用来将ini文件的对应的数据项的值设置为空即删除该项的数据,并依次将数据前移
  update(row);
}

    然后我们再编写自定义函数update:
    在上面button1响应函数的前面添加update函数如下:

void update(int drow){
     AnsiString n1;
     int i,j,j1,num;
     //下面是对ini文件的操作
     TIniFile * regKey;
     AnsiString ExePath = ExtractFilePath(ParamStr(0));
     regKey = new TIniFile ( ExePath + "MYINI.INI");
     //读 "TB" 的"value"值,是用来保存文件有多少数据项的
     n1=regKey->ReadString ( "TB", "value","" );
     num= StrToInt(n1);   //将string转换为int型
     //下面的循环是读取ini文件中从第drow个数据项依次付给前一个,drow是所删除的数据项所在的位


     for(i=drow-1;i<num;i++){
         AnsiString j=AnsiString(i);
         AnsiString j1=AnsiString(i+1);
         regKey->WriteString ( "ComboBox"+j, "datetime" ,regKey->ReadString ( "ComboBox"+j1,

"datetime","" ));
         regKey->WriteString ( "ComboBox"+j, "plan" ,regKey->ReadString ( "ComboBox"+j1,

"plan","" ));
     }
     //数据项个数减1
     regKey->WriteString ( "TB", "value" , num-1);
     //释放ini文件对象
     delete regKey;
}

    双击form,编写在构建form时的响应事件,这里主要就是完成从ini文件向ValueListEditor1读入数据的功能。全部代码如下:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  AnsiString date,thing,n1;
  int i,n2;
  //ini文件的操作
  TIniFile * regKey;
  AnsiString ExePath = ExtractFilePath(ParamStr(0));
  regKey = new TIniFile ( ExePath + "MYINI.INI");
  n1=regKey->ReadString ( "TB", "value","" );
  n2= StrToInt(n1);
  //依次从文件中读入
   for(i=0;i<n2;i++){
      AnsiString j=AnsiString(i);
      date = regKey->ReadString ( "ComboBox"+j, "datetime","" );
      thing = regKey->ReadString ( "ComboBox"+j, "plan","" );
      ValueListEditor1->Keys[i+1]=date;
      ValueListEditor1->Values[date]= thing;
      }
  delete regKey;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值