Что есть:
1. Ну зачем он нужен, думаю, объяснять не надо
2. Есть точки onTrue, onFalse для выдачи результата, и точка onError для выдачи ошибки (она только одна - синтаксическая). Нижних точек нет, но приделать будет не трудно
3. Выражения для сравнивания аргументов можно писать следующий образом:
- Чтобы взять данные с точки, надо просто написать ее имя в выражении (точки верхние у меня именованные): "5 = x1", где x1 - точка.
- Если точка по данному имени не была найдена, то эта часть выражения преобразуется в real, например: "3.14 < pi", где pi - точка, 3.14 - вн. константа
- Почему в примере выше я сначала писал число, а потом имя точки? Да потому что алгоритм сравнивания в моем компоненте точно такой же, как и в If_Else, а значит он наследует все проблемы данного компонента (для строк - операции '<', '>' и их производные с '=').
- Можно использовать операторы 'and', 'or', 'xor', 'not'
- Возможна группировка подвыражений: "(x1 = 5 and x2 = 10) or x3 = 15" (причем тут можно скобки опустить, они не повлияют на результат)
- Возможно использование строковых констант за счет добавления оператора "'" (одинарная кавычка), все что лежит между двумя такими будет приниматься за значение (экранирование этого символа с помощью "\'" не сработает, я такого не делал ). Например: "name = 'Assasin'", где name - точка.
[burl=/getfile/20765]Скачать архив[/burl]
P.S: А теперь немного истории создания компонента
Читать
Первым делом я, конечно же, залез в компонент MathParse, так как я до тех пор никак не мог понять, как работают функции levelXX, ничего не понял и решил сам попробовать написать эти функции, без помощи MathParse, вскоре я начал не понимать, что и где должно быть и забил на это бестолковое дело. На следующий день мне повезло куда больше: я залез в MatParse заново и начал упрямо прослеживать в уме исполнение выдуманного выражения... и тут вдруг на пятой пробежке увидел 'while Token = '>' or ...', посмотрел 'GetToken; level(x2);' и сразу же понял! Во мне, естественно, загорелось желание применить это на практике: состряпал GetTok, level0, потом иногда поглядывая в код MathParse начал писать уровни 1, 2, 3 и 4... Ну вот сегодня я все доработал и добавил выдачу ошибок, результат вы сами видите