Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.17;
Скачать: CL | DM;

Вниз

Как обратится к переменной, имя которое вычисляется?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
1-54066
AlexVit
2003-03-04 08:04
2003.03.17
Как определить, что приложение зависло?


14-54286
Borislav
2003-02-28 19:21
2003.03.17
integer в Memo


6-54144
diks
2003-01-29 11:28
2003.03.17
Отключение клавишь на WebBrowser


9-53828
Константин
2002-10-13 17:22
2003.03.17
Несколько ??? о разработке игр


3-53952
Roki
2003-02-26 15:03
2003.03.17
Мастера, скажите, какое событие происходит?