HighCalc - многофункциональный калькулятор. Запускаемый файл - HighCalc\exe\HighCalc.exe Проект Delphi - HighCalc\Shell\Message\HighCalc.dpr Некоторые замечания по разбору выражений и получению результата. Открываешь проект HighCalc\Shell\Message\HighCalc.dpr Смотришь код по клику на кнопке "=" procedure TMainCalcForm.CalcButtonClick(Sender: TObject); Идет несколько вложенных вызовов. В модуле ExeUnit идёт вызов function ExecExpresion(Expression:string;var ErrorPosition:integer):string; Присваеваем выражение HighPrecCore.Expression:=Expression; Получаем результат result:=HighPrecCore.ResultValue; Т.е. вызывается function THighPrecCore.GetResultValue: string; Проверка выражения проводится в модуле Formula procedure TFormulaTester.IsCorrect(var i,ParamCount:integer;const Args: array of integer); Преобразование в обратную бесскобочную (польскую) запись function TFormulaTester.ConvertToPolskaRecord(Formula: string): string; Получение результата TFormulaExecute=class(TFormulaCompiler) ...... procedure Execute(const Formula:string;var Res:TUnlimitedFloat);overload; function Execute(Formula:string):Extended;overload; ...... с высокой точностью и с матпроцессором соответственно Res:=FT.Execute(PolskaRecord); для мат процессора. Обрати внимание TFormulaTester наследник TFormulaExecute Наиболее оптимальный вариант исследования кода: 1)Устанавливаешь все компоненты под Delphi 6 (RX, PaintBoxWithRubberShape) 2)Открываешь проект HighCalc\Shell\Message\HighCalc.dpr 3)Запускаешь под отладкой и смотришь промежуточные результаты. Например: Для разбора выражений - ArifmRecord в procedure TFormulaTester.IsCorrect(var i,ParamCount:integer;const Args: array of integer); Formula и Result в function TFormulaTester.ConvertToPolskaRecord(Formula: string): string; и т.д. Успехов.