Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

макроподстановки


Страницы:   1 2

IIL ©   (2002-02-08 08:51:00) 

Здравствуйте мастера! В FOXe есть понятие макроподстановки. Например если есть переменная I = "1" то к переменной B1 можно обратиться так B&I.
Есть ли что-нибудь подобное в DELPHI чтобы например объекты B1 B2 B3 и т.д. можно было бы создавать в цикле FOR I := 1 To ....


KSergey   (2002-02-08 09:36:00) [21]

Хотя ответ Digitman"а возможно более соответствует заданному вопросу (хотя если под переменными подразумевается просто, например, целочисленные, то тащить для этого TComponent...), но что-то в вашем вопросе меня натолкнуло предложить вам массивы. По-моему, для циклов (т.е. обрацению к переменным по индексу) они как раз то что надо. И городить из-за этого макроподстановку даже в FOX"е - это слишком, однако.


Digitman   (2002-02-08 09:21:00) [22]

Механизма макроопределений/макроподстановок в делфи нет. Нет его и в Паскале как таковом. Но то, что тебя интересует, в Делфи реализуемо иными средствами, не менее удобными и эффективными, чем макросредства иных языков программирования.
Единственное, что хотелось бы заметить еще, это то, что макромеханизм FOX"а в части приведенных тобой возможностей базируется исключительно на механизме интерпретации, в то время как классический макромеханизм (реализованный, например, в MASM, C/С++) предназначен для несколько иных целей.

Пример :
Пусть объекты B1, B2, .., BN являются наследниками TComponent и имеют соотв.имена "B1", "B2", ..,"BN" (т.е. подчиняются некоему заданному при кодировании правилу регулярности в однозначной их идентификации, в дан.случае - по свойству "Name")

Тогда циклический код обращения к объектам может выглядеть, например, вот так :

for i:= 1 to N do
Bi:= SomeOwnerComponent.FindComponent("B" + IntToStr(i));


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо