Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Get Var By Name, получение переменной по имени. [D7, WinXP]


opopo ©   (2006-02-28 22:15:00) 

Господа, есть ли какая-либо возможность получать доступ к переменной, при зная при этом только её стринговое значение. Я понимаю, что видимо встроенной функции в дельфю нет, но может кто сталкивался с подобной проблеммой?


Джо   (2006-03-01 11:37:00) [1]

> [9] opopo   (01.03.06 10:13)
> Джо, с переменной придумано просто класс, фантастика! Спасибо!

Это однюдь не я придумал, так что не за что :)


opopo   (2006-03-01 10:13:00) [2]

Джо, с переменной придумано просто класс, фантастика! Спасибо!


Германн   (2006-03-01 02:58:00) [3]

2 Джо ©   (01.03.06 02:52) [7]
Ты забыл классика жанра!
Нормально Георгий! Отлично Константин!


Джо   (2006-03-01 02:52:00) [4]

> [6] Германн ©   (01.03.06 02:51)
> 2 Джо ©
> Перебор!

Нормально! :0)


Германн   (2006-03-01 02:51:00) [5]

2 Джо ©
Перебор!


Джо   (2006-02-28 23:35:00) [6]

Ну, если не свойства, а переменная, то есть и такой изврат:


var
 IntVariable: Integer;
...

procedure TForm1.Button1Click(Sender: TObject);
var
 Addr: PInteger;
 I: Integer;
begin
 IntVariable := 1990;

 Addr := GetProcAddress(0,'IntVariable');
 if Addr <> nil then
 begin
   I := Addr^;
   ShowMessageFmt ('%d',[I]);
 end;
end;

exports
 IntVariable;

end.


Джо   (2006-02-28 23:27:00) [7]

 TForm1 = class(TForm)
 private
   FMyIntProp: Integer;
   FMyStringProp: string;
 public
  published
   property MyStringProp: string read FMyStringProp write FMyStringProp;
   property MyIntProp: Integer read FMyIntProp write FMyIntProp;
 end;
...
uses TypInfo;
...
procedure TForm1.Button1Click(Sender: TObject);
var
 S: string;
 I: Integer;
begin

 SetPropValue(Self,'MyStringProp','stroka');
 SetPropValue(Self,'MyIntProp',2006);

 S := GetPropValue(Self,'MyStringProp');
 I := GetPropValue(Self,'MyIntProp');
 ShowMessageFmt ('%s,%d',[S,I]);
end;


Pavia   (2006-02-28 23:22:00) [8]

opopo
нет


opopo   (2006-02-28 23:15:00) [9]

я видимо подразумеваю другое, например:


var
myvar:integer;
si:integer;

begin

si := getvarbyname('myvar');


реально такое организовать?


Desdechado   (2006-02-28 22:40:00) [10]

а как ты к ней еще доступ получаешь?
можно, конечно, на нее указатель повесить...
но ведь проще написать
a:=b;
чем
c:=@b;
a:=c^;


Наверх

Титульная страница Поиск, карта сайта Написать письмо