Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
4-54377
Tahion
2003-01-11 02:38
2003.03.17
Сохранение иконки


14-54298
ig
2003-02-27 21:21
2003.03.17
Ищу DbGrid, в стиле гридов 1С


6-54130
oleg_poligon
2003-01-22 19:43
2003.03.17
Сокеты


14-54209
Anatoly Podgoretsky
2003-03-02 07:57
2003.03.17
Катарина с Днем Рождения


14-54163
Феликс
2003-02-28 20:49
2003.03.17
От тюрьмы и от сумы...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский