数据表:
dm     mc
001    A
002    B
003    C
004    Dprocedure Tdakm.GetData(dm, mc: TStrings);
var i:integer;
begin
  dm.Clear;
  mc.clear;
  Customerdata.GetData('select dm,mc from '+Ftablename);
  for i:=0 to customerdata.ClientDataSet1.RecordCount-1 do
  begin
    dm.Add(customerdata.ClientDataSet1.fieldbyname('dm').AsString);
    mc.Add(customerdata.ClientDataSet1.fieldbyname('mc').AsString);
    customerdata.ClientDataSet1.next;
  end;
end;
Tdakm.getdata返回数据表中的 科目代码 和 科目名称
当我调用
  listbox1.items.clear;
  srclist.items.clear;
  dadx.GetData(listbox1.Items,srclist.Items);
后,
listbox1       srclist
001            B
002            C
003            D
004            A我期待的结果是
listbox1       srclist
001            A
002            B
003            C
004            D

解决方案 »

  1.   

    感觉错误没有出现在对TStrings对象的操作上。
      

  2.   

    你先试试把他们加到一个列表中看看数据是否是正确的。
    procedure Tdakm.GetData(dm, mc: TStrings);
    var i:integer;
    begin
      dm.Clear;
      mc.clear;
      Customerdata.GetData('select dm,mc from '+Ftablename);
      for i:=0 to customerdata.ClientDataSet1.RecordCount-1 do
      begin
        dm.Add(customerdata.ClientDataSet1.fieldbyname('dm').AsString+'/'+
               customerdata.ClientDataSet1.fieldbyname('mc').AsString);
        customerdata.ClientDataSet1.next;
      end;
    end;
      

  3.   

    你的参数应该是VAR型的
    procedure Tdakm.GetData(VAR dm, mc: TStrings);
      

  4.   

    RecNo 是从  1 到 RecordCount for I := 1 to customerdata.ClientDataSet1.RecordCount do
      

  5.   

    解决,弱智问题。多谢大家捧场。listbox被人给sorted了揭帖