假设我有变量A,B,我如何通过字符串'A','B'来获得A,B的值呢??

解决方案 »

  1.   

    不要用硬编码的方法,比如,在if或者case里一一用'A','B'和A,B来对应而获得.
      

  2.   

    在DELPHI中不行,在VFP中可用&取得。
      

  3.   

    你的意思是不是取得字串的ASCII值?如果是,可以这样:
    var
      x: string;
      w1: Word;
    begin
     X := a; 
     w1 := ord(x);
    end;
      

  4.   

    楼上的兄弟啊,我要的是变量的值,不是某个字母的ASCII码啊!!
      

  5.   

    我认为不能实现,因为你的变量A,B的类型不确定,如果A是一个TForm,B是一个integer,那么你的返回类型怎么定义,又如何表达,除非你作个很复杂的判断(但是我觉得这样的代码没意义)。
      

  6.   

    例如,你可能通过采用动态数组来实现:
    比如:
    procedure aa;
    var
      A: integer;
      B: String;  
      X:Boolean;
    begin
      A := 10;
      B := 'Hello';
      X := True;
      test(1, [A]);
      test(2, [B]);
      test(3, [X]) 
    end;//1处理Integer, 2处理String, 3处理Pointer
    procedure test(Action: integer;const pArgs: array of const);
    begin
    //  如果是Integer的话
      Case Action of
      1: showmessage(inttostr(pArgs[0].vInteger)); 
      2: showmessage(pArgs[0].vString);
      3: if pArgs[0].VBoolean then
          showmessage('This is Boolean variable');
      end;
    end;
      

  7.   

    上面的写错了少少
    例如,你可能通过采用动态数组来实现:
    比如:
    procedure aa;
    var
      A: integer;
      B: String;  
      X:Boolean;
    begin
      A := 10;
      B := 'Hello';
      X := True;
      test(1, [A]);
      test(2, [B]);
      test(3, [X]) 
    end;//Action is 1处理Integer, 2处理String, 3处理Boolean
    procedure test(Action: integer;const pArgs: array of const);
    begin
      Case Action of
      1: showmessage(inttostr(pArgs[0].vInteger)); 
      2: showmessage(pArgs[0].vString);
      3: if pArgs[0].VBoolean then
          showmessage('This is Boolean variable');
      end;
    end;
      

  8.   

    to: Wally_wu(Wally)
    兄弟用的是开放数组(呵呵,我咬文嚼字了:)没有大家想的那么麻烦,我只是返回一个String类型的变量,我是想有这样的功能,就是象Findcontrol('button1')这样返回特定的类型,我就是要一个类似的
    FindString('A')这样的结果,FindString('A')返回字符串变量A的值.
      

  9.   

    网络断了,不好意思.就算是用类型可变开放数组,基本上也是硬编码,有没有类似于FindControl那样,主窗体的所有控件都记录在控件数组里,所以很方便查找,类似于此,当前项目有个全部变量列表??
      

  10.   

    to forgot(忘记forgot2000):
    我有两个心恐怕也被你说死了!! :)
      

  11.   

    Function Name : Boolean ;
    begin
      ShowMessage('ok') ;
    end; 
    s : String ;S := 'Name' ;
    s ;  //能 ShowMessage('ok') 吗 ? ,听说这是编译器取内容和取指针的差别,如果能实现将字符串转化为命令字,那么很多程序就很好写了
    行吗 ? 期待,祈祷......