Конференция "FreePascal" » Значение перименной по ее имени
 
  • XCoder (21.05.05 22:47) [0]
    Здравствуйте уважаемые мастера Delphi! У меня во такой вопрос: можно ли получить значение перименной или константы по ее имени?

    ...
    var
    v: byte;
    begin
    v := 1;
    ...
    a := XXX('v'); //В параметре функции передается имя перименной или константы, а она должна возвращать значение
    end;
    ...
  • default © (21.05.05 22:50) [1]
    встроенной ф-ции нет, только если самому делать
  • default © (21.05.05 22:52) [2]
    например, можно использовать TStringList с его свойствами Objects, Sorted
  • Просто Джо © (21.05.05 23:36) [3]
    Можно использовать опубликованные свойства классов, скомпилированных со включеной опцией {$M}. Например.


    program Project1;

    {$APPTYPE CONSOLE}

    uses
     TypInfo;

    type
     {$M+}
     TWrapper = class
     private
       FMyStrProp: string;
       FMyIntProp: Integer;
       FMyFloatProp: Double;
     published
       property MyStrProp: string read FMyStrProp write FMyStrProp;
       property MyIntProp: Integer read FMyIntProp write FMyIntProp;
       property MyFloatProp: Double read FMyFloatProp write FMyFloatProp;
     end;
     {$M-}

    { TWrapper }

    var
     MyWrapper: TWrapper;
    begin
     MyWrapper := TWrapper.Create;
     try
       MyWrapper.MyStrProp := 'This is a value of a string property.';
       MyWrapper.MyIntProp := 2005;
       MyWrapper.MyFloatProp := 666.666;

       // выводим значения,
       // запрашивая свойства по их именам
       WriteLn(
         GetStrProp(MyWrapper,'MyStrProp')
       );

       WriteLn(
         GetOrdProp(MyWrapper,'MyIntProp')
       );

       WriteLn(
         GetFloatProp(MyWrapper,'MyFloatProp'):1:3
       );

     finally
       MyWrapper.Free;
     end;

     ReadLn

    end.

  • Просто Джо © (22.05.05 00:01) [4]

    > [3] Просто Джо ©   (21.05.05 23:36)


    Тьфу, сорри, не заметил что конференция по FreePascal. В нем не разбираюсь, еще раз сорри за дезинформацию.
  • Иван Шихалев © (22.05.05 02:04) [5]
    А в FPC - так же.
 
Конференция "FreePascal" » Значение перименной по ее имени
Есть новые Нет новых   [119316   +77][b:0][p:0.001]