有比这个方法更好的吗?
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,StrUtils;type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    ListBox1: TListBox;
    Button1: TButton;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  a,s:string;
  i,j:integer;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
i:=length(edit1.Text);
  for j:=1 to i do
 //while i>1 do
  begin
    i:=length(edit1.Text);
    a:=edit1.text;
    edit3.Text:=leftStr(a,pos(',',a)-1);
    try
      s:=rightStr(a,i-pos(',',a));
      if pos(',',a)=0 then
      break;
      edit1.Text:=s;
     except
        beep;
      end;
        ListBox1.Items.Add(edit3.text);
    end;
        ListBox1.Items.Add(edit1.Text);
        edit2.Text:=listbox1.Items.Text;
  end;
end.

解决方案 »

  1.   

    ExtractStrings:用指定的分割符分割一个字符串为多个子字符串给你一个例子var
      S: string;
      SL: TStringList;
    begin
      S := '123,456,789';
      SL := TStringList.Create;
      ExtractStrings([','], [], PChar(S), SL);
      ShowMessage(SL.Text);
      SL.Free;
    end;
      

  2.   

    运行结果怎么是弹出一个对话框,我在edit里输入 1,2,3,4  
    对话框里面显示 123
                  456  
                  789
    ????
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ListBox1.Items.Delimiter := ',';
      ListBox1.Items.DelimitedText := Edit1.Text;
    end;//你的代码风格太乱,一点也不美观~~
    //要是和你在一个开发组真是很痛苦~~