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

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

Существует ли какая-нить функция подстановки....? [D6, Win95/98, Win2k, WinXP]


Хамло ©   (2002-10-18 09:18:00) 

которая позволяла бы интерпретировать символьную переменную как отображаемый ею объект программы.
Конкретнее: мне нужно чтобы при вводе юзером в компонент Edit формулы (содержащей стандартные математические ф-ции паскаля, есессно), эта самая формула вставлялась в программу непосредственно как паскалевский код....Хотелось бы увидеть пример, если можно:)). Заранее благодарен.


han_malign   (2002-10-18 12:49:00) [1]

4. RxLib - только символические значения в строке фармулы заменяешь входными значениями.(долго конечно считать будет, но...).
3. Если набор входных значений фиксирован, то оптимизировать самому придется, переводить в префиксную форму и etc.,etc.,etc...., фактически компилировать.
dll_templ.beg:
Lybrary Func;
uses Math;
function _func(x1,x2,...: extended): extended;
begin Result:=


dll_templ.end:
; end;
exports
_func;
begin
end.


dll_templ.beg + "формула"+ dll_templ.end > dll_templ.dpr

hProc:=ShellExecute(Handle,"open","dcc32.exe","dll_templ.dpr","",SW_SHOWMINNOACTIVE);
WaitForSingeObject(hProc,INFINITE); ну короче про то как выполнить что то много веток было

hLib:=LoadLibrary(dll_templ.dll);
pFunc:=GetProcAddress(hLib,"_func")"
........
y:=_func(x1,x1,...)
........




Хамло   (2002-10-18 11:23:00) [2]

to han_malign
Задача в следующем: написать программу, которая по каким-то входным данным будет рассчитывать по определенным формулам результат... И нужно предусмотреть возможность замены формул юзером в готовой программе не переписывая сам проект.


Digitman   (2002-10-18 10:18:00) [3]

Можно попробовать использовать компонент Innerfuse Pascal Script.

см. http://www.carlo-kok.com/downloads/ifps3/ifps3__1_02.zip

там же исходники и там же - демо-проекты с примерами использования


han_malign   (2002-10-18 09:46:00) [4]

> непосредственно как паскалевский код
1. Вопросом на вопрос(хоть и неприлично): чем компилятор отличается от интерпретатора.
2. Паскалевский код можно вставить только в паскалевский код(.pas,.dpr,.inc), но не в программу.
3. Вариант, в принципе есть - делаешь шаблон DLL с шаблоном функции, из Edit-а прописываешь в шаблон, компилишь с помощью dcc32 (ShellExecute), подгружаешь DLL (LoadLibrary,GetProcAddress)- и у тебя в контексте процесса есть рабочий код функции (только нужно определить стандартный вход-выход функции, либо генерить DLL целиком(авто-написатель программ, на что же мы кушать будем)).
4. А вообще для рассчета выражений в RxLib 2.75 есть специальный компонент.
5. Есть готовые компоненты для поддержки скриптов.


Anatoly Podgoretsky   (2002-10-18 09:25:00) [5]

Да конечно это TEdit, соблюдай только правила Паскаля


Наверх

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