和下标有什么关系?代码如下:
procedure Tbuildup_fm.rgBuildChange(Sender: TObject);
begin
 if rgBuild.Items[rgBuild.ItemIndex] = '拆卸' then
 begin
  .....
  end ;
  if rgBuild.Items[rgBuild.ItemIndex] = '组装' then
   begin
    ....
   end;end;
 另外在窗体中已经设置好了items 和values.

解决方案 »

  1.   

    和下标有什么关系?代码如下:
    procedure Tbuildup_fm.rgBuildChange(Sender: TObject);
    begin if rgBuild.Items.Count = 0 then exit;  //加入此行 if rgBuild.Items[rgBuild.ItemIndex] = '拆卸' then
     begin
      .....
      end ;
      if rgBuild.Items[rgBuild.ItemIndex] = '组装' then
       begin
        ....
       end;end; 
      

  2.   

    呵呵,刚才搞错了,应是这样吧!procedure Tbuildup_fm.rgBuildChange(Sender: TObject);
    begin if (rgBuild.ItemIndex < 0) or (rgBuild.ItemIndex >= rgBuild.Items.Count) then exit;  //应是加入此行 if rgBuild.Items[rgBuild.ItemIndex] = '拆卸' then
     begin
      .....
      end ;
      if rgBuild.Items[rgBuild.ItemIndex] = '组装' then
       begin
        ....
       end;end;
      

  3.   

    "list index out of bounds(-1)",就是说你下标越界了,多半是当时ItemIndex的值为-1,所以你用rgBuild.Items[rgBuild.ItemIndex]就出错了
      

  4.   

    谢谢2位,谁还有更好的answer?
      

  5.   

    to:weizhi(行者) (  ) 信誉:100 thanks!我试了一下,还是同样的错误。不过你说对了,我给values的值副为:-1 和 1对应表中的一个字段。当浏览表时,不会出错,但是想append一条记录时就出错如上。
      

  6.   

    当然是因为你append了一条纪录,你又在窗体中指定了items和values
      

  7.   

    to:yangkunjie(杨七郎)(dephi有意思!我append的是一条空记录,并没有把值写入rgBuild对应的字段。
    我是想通过窗体给rgBuild对应的字段赋值。
      

  8.   

    我注意到了,当单击‘新增’按扭,即append时,rgBuild中的选项都没有被选中。