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

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

Макроподстановка [D5, Win95/98]


alord ©   (2002-07-31 08:01:00) 

HELP !!! Пожалуйста !!!
Как можно в Pascale писать макроподстановки
Такие как в FoxPro - (i="1+2";&i )


KSergey   (2002-08-01 06:42:00) [1]

Вообще-то, Anatoly Podgoretsky ©(31.07.02 08:59) дал абсолютно правильный ответ на поставленный вопрос!
Если же посмотреть на поставленную задачу шире, то этого действительно никак не сделать. Тут есть 2 выхода:
а) менять мышление и делать программы без необходимости макроподстановок (другая среда - други подходы, это нормально)
б) если нужны не то чтобы макроподстановки сами по себе, а, например, вычисление настраиваемых пользователем формул и т.д. - использовать какой-либо интерпретатор-вычислитель выражений, который либо написать самому, либо воспользоваться готовыми, которых горы (см. кладовку, новости мира компонент).
Но к пункту б) стоит прибегать только в случвае крайней нужды, когда действительно нужна именно настройка со стороны пользователя. Другие задачи лучше решать иначе.


SergLight   (2002-07-31 10:32:00) [2]

Попробуй написать свой интерпретатор.
В Кладовке были похожие вещи.


Stecoff   (2002-07-31 10:21:00) [3]

Думаю, не об этом. Формировать строковые переменные - это одно, а макроподстановки - другое. Суть следующем - формируем команду в виде строки, потом результат исполняем. В Fox-е это выглядело так:
CommandString="BROWSE NORM"
&CommandString
В результате выполняется команда Browse Norm
А в Delphi такого нет. Самому интересно..


Destroyer   (2002-07-31 09:03:00) [4]

По-моему, речь шла об этом:

ShowMessage(Format("Sum is %d", [1+2]));


Anatoly Podgoretsky   (2002-07-31 08:59:00) [5]

Такие
const
I = 1+2;


VAleksey   (2002-07-31 08:48:00) [6]

никак


Наверх

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