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

Вниз

Существует ли какая-нить функция подстановки....?   Найти похожие ветки 

 
Хамло ©   (2002-10-18 09:18) [0]

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


 
Anatoly Podgoretsky ©   (2002-10-18 09:25) [1]

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


 
han_malign ©   (2002-10-18 09:46) [2]

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


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

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

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

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


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

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


 
han_malign ©   (2002-10-18 12:49) [5]

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,...)
........






Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
3-92366
sie_vedenie
2002-10-04 19:36
2002.10.28
Работа на sql с dbase3


1-92560
TankMan
2002-10-14 21:21
2002.10.28
Проблема... с TStrings.


1-92441
Anar
2002-10-17 22:40
2002.10.28
HDDs


3-92401
alek123
2002-10-08 14:43
2002.10.28
ODBC


1-92544
SkyQuake
2002-10-14 15:46
2002.10.28
ntdll.DbgBreakPoint