已定义一记录类型:如type 
                      day=(sunday,monday,....);
                      myrecord=record
                          weekday:day;
                          end;
                    var
                      newrec:myrecord;
                    with newrec do
                      begin
                        newrec.weekday:=sunday;
                      end;
这样是正确的,但是,如果改面下面的就不对了,
                    with newrec do
                      begin
                        newrec.weekday:=edit1.text;
                      end;
          提示:类型不兼容。请问如何将edit值赋给weekday呢?

解决方案 »

  1.   

    newrec.weekday:=strtodate(edit1.text);
      

  2.   

    newrec.weekday:=Day(GetEnumValue(TypeInfo(day),Edit1.Text));
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        newrec:myrecord;
    begin
        with newrec do
        begin
            newrec.weekday:=Day(GetEnumValue(TypeInfo(day),Edit1.Text));
        end;
        Label1.Caption:=GetEnumName(TypeInfo(day),integer(newrec.weekday));
    end;
      

  4.   

    请问GetEnumValue(),TypeInfo()是什么函数?
      

  5.   

    系统提供的取得枚举值的函数。uses typinfo
      

  6.   

    谢谢gzmhero,现在结贴!!!!