Важное замечание: IFPS3 не поддерживает типы Pointer и конструкцию class
Так с этого надо было начинать
Бог с ними со скритами в рунтайме , но почему бы не
сделать компонент с возможностью делать прямые
вставки процедуры на паскале в схеме !
Вот это справедливо. Не есть умно делать интерпретатор на то, на чего есть компилятор. Просто черт кроется в мелочах. А именно, макросы сильны тогда, когда нет проблем с интерфейсом. Т.е. принять входные данные и отдать выходные. А по моему пониманию, этот интерфейс (расширенный до почти любых задач) и заложен в элементе.
сделать компонент с возможностью делать прямые
вставки процедуры на паскале в схеме !
В погоне за визуальностью все забыли что НiAsm
это надстройка над мощнейшим компилятором
это надстройка над мощнейшим компилятором
Кто Вам рассказал про "мощнейшесть" имеющихся компиляторов
Как-то обсуждали это на форуме, и я высказывал свое отношение к объему ИИ заложенному в компиляторы. Дельфи образован на уровне шестиклассника, а FPC - не выше третьего
Это ведь ни как не отразится на тех кто незахочет
эту возможность использовать
эту возможность использовать
У меня нет Дельфей. Когда надо разобраться, или слепить свое, нажимаю Ctrl+F на выделенном элементе, редактирую (например отладочный Message вклеиваю), сохраняю, переключаюсь в проект, запускаю (вообще-то чаще компилирую, ибо знаю - все начнется с ошибок синтаксиса )
Не логичнее бы было просто вставить
эту формулу ПРЯМО в код!
эту формулу ПРЯМО в код!
Давайте с этого момента совершенно конкретно.
Делаете следующий INI-файл (ElementsconfExpression.ini):
[About]
Version=1.0
Author=Galkov
Mail=Galkov@inbox.ru
[Type]
Class=Element
Info=Мат.выражение
[Methods]
doCalc=Вычислить|1|int
onResult=Результат вычислений|2|
Data=Данные для вычислений|4|int
unit hiExpression;
interface
uses Kol,Share,Debug;
type
THIExpression = class(TDebug)
private
public
_data_Data:THI_Event;
_event_onResult:THI_Event;
procedure _work_doCalc(var _Data:TData; Index:word);
end;
implementation
procedure THIExpression._work_doCalc;
var Res:real;
begin
Res := ReadReal(_Data, _data_Data, 0);
Res := Sin(Res*5*pi)/Res; // Это Ваша формула
_hi_onEvent(_event_onResult, Res);
end;
end.
Можно теперь устанавливать эти одинаковые элементики в проект хоть целую толпу. (Правда, чтобы это делать из среды, необходимо его зарегистрировать - прописать в файле Elements.ini)
Рассуждаем дальше. Годится ли такой "шаблон" для канонизации
Вряд ли. Слишком мало степеней свободы. Кому-то захочется иметь нижнюю точку. А кому-то покажется, что верхняя точка - это пижонство. А раз элементов может быть много (так уж устроено в ООП), значит пусть будут параметры, разные для разных экземпляров класса. Есть вопросы нескольких входов и нескольких выходов. Ну и т.д.
Вобщем, надеюсь, что более подробно рассказал смысл фразы:
"Galkov" писал(а):
немножко усовершенствовали идею, добавили к ней иконку, и получилось то, чего сегодня называется ЭЛЕМЕНТ