![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как динамически формировать имя переменной? [D6, 95/98]
sanich © (2006-03-22 16:15:00)Всем привет!!!
Подскажите как формировать динамически имя переменной.
Например цик for i:=1 to 10 Так вот чтобы в первом проходе обрабатывалась переменная a1 при втором а2 и т.д.
Спасибо за ответ!!!
Жуков Олег (2006-03-22 21:05:00) [1]Вообще у просто переменных никаких имён в уже скомпилированном файле нет, это просто какие то адреса участков памяти. Есть информация об именах published свойств компонентов. Можно в принципе у какого нибудь Component объявить набор published свойств, потом обращаться к ним по именам.
uses TypInfo
var
PropInfo: PPropInfo
PropInfo := GetPropInfo(Component.ClassInfo, VarName);
VarValue := GetOrdProp(Component, PropInfo);
Только зачем, если можно [1], либо, взять TStrings, хранить в Items названия "переменных", а в Objects значения.
TUser (2006-03-22 20:32:00) [2]Сделать переменную типа TComponent, + FindComponent.
Palladin (2006-03-22 20:30:00) [3]
> sanich © (22.03.06 16:27) [6]
Простой вопрос. Зачем?
AlexWlad (2006-03-22 19:43:00) [4]Д - не интерпретатор!!!
Попробуй поискать PaskalScript, или как-то похоже...
Leonid Troyanovsky (2006-03-22 16:31:00) [5]
> sanich © (22.03.06 16:27) [6]
Не надо юлить.
--
Regards, LVT.
Dmitrij_K (2006-03-22 16:30:00) [6]
> Всем привет!!!
> Подскажите как формировать динамически имя переменной.
> Например цик for i:=1 to 10 Так вот чтобы в первом проходе
> обрабатывалась переменная a1 при втором а2 и т.д.
> Спасибо за ответ!!!
В таком контексте - НИКАК
см [1]
grisme (2006-03-22 16:30:00) [7]можно, конечно, создать список указателей. параллельно массив имен..ну как примерно IDE делают...)) при компиляции текста обращаешься к массиву, потом к списку.)
Reindeer Moss Eater (2006-03-22 16:27:00) [8]Во время выполнения программы нет никаких имен переменных
sanich (2006-03-22 16:27:00) [9]Например:
for i:=1 to 10 do
begin
ai=i; //Вычисления
end;
i=1
a1=1
i=2
a2=2
i=3
a3=3
Приблизительно вот так.
Ega23 (2006-03-22 16:26:00) [10]
> Но надо именно динамически сформировать имя переменной,
> или так нельзя?
>
А что есть переменная?
И что есть имя?
Ну и, поскольку Тор троицу любит - что есть имя переменной?
Leonid Troyanovsky (2006-03-22 16:24:00) [11]
> sanich © (22.03.06 16:21) [2]
> Но надо именно динамически сформировать имя переменной
Отсюда поподробней.
--
Regards, LVT.
sanich (2006-03-22 16:21:00) [12]Я так тоже умею :)
Но надо именно динамически сформировать имя переменной, или так нельзя?
Ega23 (2006-03-22 16:17:00) [13]
var
a:array[1..10] of Integer;
i:Integer;
begin
for i:=1 to 10 do
begin
a[i]:= ....
end;
end;
:о)