我要将一个 集合  类型的变量用 文本框显示出来,请教高手,我怎样把集合类型转换成  string  类型呢?

解决方案 »

  1.   

    要自已写一个。
    如:
    TBitMap8583=set of 1..128;
    function Tiso8583_package.getBitMap8583_String():String;
    var
      s:string;
      i,k:integer;
      set1:TBitMap8583;
    begin
      set1:=getBitMap8583_Set;
      s:='['; k:=0;
      for i:=0 to 128 do
        if i in set1 then
           if k=0 then
           begin
              s:=s+trim(inttostr(i)); k:=k+1;
           end
           else begin
              s:=s+','+trim(inttostr(i)); k:=k+1;
           end;
      s:=s+']';
      getBitMap8583_String:=s;
    end;
      

  2.   

    unit U_jihe;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        procedure Button4Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    implementation{$R *.dfm}procedure TForm1.Button4Click(Sender: TObject);
    begin
    close;
    Hide;
    end;procedure TForm1.FormCreate(Sender: TObject);
    type
      jihe1=set of 1..9;
      jihe2=set of 6..16;
      jiaoji=set of 1..20;
    var
      ji1:jihe1;
      ji2:jihe2;
      kongji:jiaoji;
      m,n,h:string;
      i,j:integer;
    begin
      m:='[';  j:=0;
      for i := 0 to 20 do
        if i in ji1 then
          if j := 0 then  //出现编译错误
          begin
            m:=m+trim(inttostr(i));        j:=j+1;
          end
          else begin
            m:=m+','+trim(inttostr(i));        j:=j+1;
          end;
      m:=m+']';
      edit1.text:=m;
      {n:='[';
      j:=0;
      for i:=1 to 20 do
        if i in ji2 then
          if j:=0 then
          begin
            n:=n+trim(inttostr(i));
            j:=j+1;
          end
          else begin
            n:=n+','+trim(inttostr(i));
            j:=j+1;
          end;
      n:=n+']';
      edit2.text:=n;}
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      //edit3.text:=h;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      //edit3.text:=h;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
      //edit3.text:=h;
    end;end.
    请问,问题在哪?