Форум: "Основная";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
ВнизКак обратится к переменной, имя которое вычисляется? Найти похожие ветки
← →
Roki (2003-03-04 12:05) [0]Мастера, не судите за вопрос, он ламерский, но я не знаю на него ответ. Помогите.
Есть переменные типа string, как обратится их именам, если я получаю в процесе вычислений к какой нужно обратится. Например:
ttrr:string;
ssrr:string;
tthh:string;
sshh:string;
...
"ss"+"hh" := "lalala";//так нельзя
Через условия конечно можно, хотелось бы так как я спросил.
← →
Roma (2003-03-04 12:10) [1]Никак... Но если у тебя много переменных одного типа - почему бы не сделать массив (да хоть динамический), и обращаться к его элементам по индексу?...
← →
Roki (2003-03-04 12:12) [2]Просто есть возможность обращятся к компонентам по имени FindComponent. Я думал что есть что-то подобное и для переменных...
← →
app (2003-03-04 12:17) [3]Ну так помести из в компонент
← →
Roma (2003-03-04 12:18) [4]Нету... А в случае с FindComponent так и сделано - есть массив Components, и по нему делается поиск, пока не найдется компонент с указанным именем (см. Classes.TComponent.FindComponent)...
← →
petr_v_a (2003-03-04 12:23) [5]еще может FieldAddress помочь
← →
petr_v_a (2003-03-04 12:30) [6]можно глянуть в сторону TStringList.Values
В изначальной постановке здача решения не имеет - имена переменных и свойств преобразовываются компилятором в адреса, и программа их "не помнит". Исключение составляют published свойства объектов, для которых компилятор генерирует RTTI ( RunTime Type Infromation ), по которой и работает FieldAddress
← →
REA (2003-03-04 12:34) [7]А к тем переменным, которые получились по имени тоже обратиться по имени. Интерпретатор в интерпретаторе получится.
← →
Roki (2003-03-04 12:41) [8]2 REA ©
?
непонятно, можешь примерчик показать?
← →
REA (2003-03-04 12:52) [9]Это я так иронизирую. Возможно конечно и есть подобная возможность, поскольку отладчик это как то делает (правда у него еще исходники есть), но не думаю что это просто и тем более целесообразно. По крайней мере не могу представить зачем это нужно, кроме как для написания собственного отладчика.
← →
Basilio (2003-03-04 13:00) [10]FindComponent ищет не по именам-идентификаторам, а по свойствам
TComponent.Name:string
Есть еще вариант с TStringList:
в нем лежат строки типа:
"aaa= Value 1"
"bbb= Value 2"
...
...
можно использоватьproperty Values[ const Name: string]: string...
оно ищет значения (Value1, value 2..) по именам (aaa,bbb).
← →
Shc (2003-03-04 19:56) [11]Сейчас нет под рукой Делфя, не могу проверить. А с процедурами такой фокус проходит (вызов по собираемому имени)? По-моему должно получиться.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.03.17;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c