DELPHI取ASCII的问题。m_ord:='a';
m_value:=ord(m_ord);编译的时候提示错误。Incompatible types  为什么。

解决方案 »

  1.   

    1.uses
     System2.m_value要定义为integer类型。
      

  2.   

    还有 m_ord定义为char类型,不要string类型。
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      S: string;
      ch:char;
    begin
       s:='abcdefg';
       ch:=s[1];
       s:=IntToStr(Ord(ch));
       ShowMessage(s);
    end;
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    Var
      m_ord: String;
      m_value,I,Count : Integer;begin
      m_ord:='abcdefg';
      For I := 1 To Length(m_ord) Do
      Begin
        m_value:=ord(m_ord[I]);
        Showmessage(InttoStr(m_value));
      End;
    end;主要是ord() 不支持String
      

  5.   

    你可以用Ord,还可以强制类型转换,这样全角和半角都可以转换。
    procedure TForm1.Button1Click(Sender: TObject);
    var
      temp: char;
      tempq: string[10];
      tempa, tempb: byte;
    begin
    //半角
      temp:= 'a';
      tempa:= byte(temp);
      form1.Caption:= inttostr(tempa);
    //全角
      tempq:= '我是你的好朋友';
      tempa:= byte(tempq[1]);
      tempb:= byte(tempq[2]);
      form1.Caption:= form1.Caption + '高位'+ inttostr(tempa)+ '低位'+ inttostr(tempb);
    //pascal没有C语言里的共用体,全角转换出来要变成整型,要通过计算才能完成合并。这个就自己写吧?很好做的
    end;
      

  6.   

    没有共用体?那
    TRec = record
    case byte of
     0:(W: word);
     1:(Whi:byte,Wlo:byte);
    end;
    这是什么啊?