我想实现一个很简单的功能,
单击listbox中的一项,
在数个edit控件中分别显示单击项对应数据库中的各项内容。with datam.DM.Qry1 do
begin
  Close;
  SQL.Clear;
  SQL.Add('select aa,bb,cc,dd,ee from abcde');
  Open;  listbox1.clear;
  while not Eof do
  begin
    listbox1.items.add(fields[0].asstring+' '+fields[2].asstring+' '+fields[1].asstring);
    Next;
  end;
end;单击某一列表框中特定的项目后在edit1中显示fields[0],edit2中显示fields[1]。

解决方案 »

  1.   


    向ListBox中添加数据
    with datam.DM.Qry1 do 
    begin 
      Close; 
      SQL.Clear; 
      SQL.Add('select aa,bb,cc,dd,ee from abcde'); 
      Open;   listbox1.clear; 
      while not Eof do 
      begin 
        listbox1.items.add(fields[0].asstring+';'+fields[2].asstring+';'+fields[1].asstring); //每项数据间用';'号隔开
        Next; 
      end; 
    end; 
    ListBox单击
    procedure TForm1.ListBox1Click(Sender: TObject);
    var
      list:TStringList;
      i:Integer;
    begin
      list := TStringList.Create;
      list.Delimiter := ';';
      list.DelimitedText := ListBox1.Items.Strings[ListBox1.ItemIndex];
      Edit1.Text := list.Strings[0];
      Edit2.Text := list.Strings[1];
      Edit3.Text := list.Strings[2];
      list.Free;
    end;