本人有两个窗口,分别为FORM1,FORM2,FORM2中有一个CHECKLISTBOX控件,我需要将CHECKLISTBOX中选中的记录放入FORM1中的数组中,该数组希望为动态的二维数组,然后根据该数组中的记录循环,将该数组中的记录入存入数据库中的表中。请问,该如何定义数组,又该如何将数据传递给数组,多谢了!

解决方案 »

  1.   

    先定义一个动态数组:
    type 
       DynArr = array of array of Variant;
    .....
    .....
    procedure test;
    var
      dynarr1 : DynArr;
      i: Integer;
      dynarr1Len: Integer;
    begin
      dynarr1Len:= CheckListBox1.Items.Count;  
      SetLength(dynarr1,dynarr1Len,dynarr1Len);
      for i:= 0 to dynarr1Len -1 do
       dynarr1[i,i]:= CheckListBox.Items[i];
    end;
      

  2.   

    我试过TSTRINLIST,但是在传递数据时总是报地址错误。
    FORM1.STRINGLIST1.STRINGS[I]:=FORM2.CHECKLIST1.ITEMS.STRINGS[I]这一名赋值是否有错?
      

  3.   

    谢谢JACKYCHANG,我会试一下,但不知在两个FORM中是否会出现地址错误?
      

  4.   

    一楼说得好,用TStringList最好!
      

  5.   

    FORM1.STRINGLIST1.Assign(FORM2.CHECKLIST1.ITEMS)
      

  6.   

    不要数组与ChekckListBox, 第三方控件都可以做到,  wwDBGrid(InfoPower)或 Ehlib
    wwww.51delphi.com