在表中有一个管理员字段是text类型,如1,2,3。现在我想把这几个数在Memo和listbox中显示为1
      2
      3
请问能实现吗?怎样实现呢?!

解决方案 »

  1.   

    在form1的oncreate中写:
     table1.open
     table1.first;
    for i:=1 to table1.recordcount do
        begin
           listbox1.items.add(table1.fieldbyname(字段名).asstring);
           table1.next;
       end;
      

  2.   

    Query1.Close ;
        Query1.SQL.Clear ;
        Query1.SQL.Text :='select 管理员 from table';
        Query1.Open ;    Query1.First ;    for i:=1 to Query1.RecordCount do
        begin     memo1.Lines.Add(query1.FieldByName('管理员').AsString);
         listbox1.Items.Add(query1.FieldByName('管理员').AsString);
         query1.Next ;    end;
      

  3.   

    for i := 0 to 记录个数-1 do
    begin
      Memo1.Lines.Add('你的text类型字段值');
    end;记住,Memo和ListBox的内容都是TString类型的,可以朝里面很简单的添加
      

  4.   

    可是我用add之后显示的是1,2,3 
    我想要的是分列显示1
                     2
                     3
    这种的
      

  5.   

    var 
      s: string;
      list: TListsting;s:= query1.FieldByName('管理员').AsString;List:= StrToList(s);for i:= 0 to List.count-1 do
    begin
      memo1.Lines.Add(List[i]);
      listbox1.items.add(List[i]);
    end;StrToList为一个将字符串转化为字符串列表的函数
    function StrToList(AStr: string): TStrings;
    var
      TempStr: string;
      i: integer;
    begin
      Result := TStringList.Create;
      TempStr := AStr;
      while TempStr <> '' do
      begin
        i := Pos(',', TempStr);
        if i = 0 then
        begin
          Result.Add(TempStr);
          TempStr := '';
        end
        else
        begin
          Result.Add(Copy(TempStr, 0, i - 1));
          TempStr := Copy(TempStr, i + 1, Length(TempStr) - i);
        end;
      end;
    end;