![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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^;