Пользовательские функции в Evaluate()
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Пользовательские функции в Evaluate()
Я выше чуть-чуть привёл вариант функции. Строчка "if not omitted(3)" отрабатывается как надо.
We are hard at work… for you. 

- Игорь Столяров
- Ветеран движения
- Сообщения: 8031
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 96 раз
Пользовательские функции в Evaluate()
Да ! С этого примера и начал.
Только 3-ий параметр всегда будет NOT OMITTED не зависимо от того, указан он при вызове функции или нет ...
Make Clarion Great Again ! 
-
- ✯ Ветеран ✯
- Сообщения: 5160
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 26 раз
Пользовательские функции в Evaluate()
Тогда ещё раз. Вот функция:
Вот вызов:
Вот стоп:
Следующий вызов:
Вот стоп:
Код: Выделить всё
Max PROCEDURE (String v1, String v2, <String v3>, <String v4>, <String v5>) ! Declare Procedure
! Start of "Data Section"
! [Priority 50]
oHH &tagHTMLHelp
! [Priority 1300]
! End of "Data Section"
! Start of "Local Data After Object Declarations"
! [Priority 5000]
! End of "Local Data After Object Declarations"
CODE
! Start of "Processed Code"
! [Priority 4000]
stop(omitted(3) & ' , ' & omitted(4) & ' , ' & omitted(5))
if not omitted(3)
if v3>v2 and v3>v1
return v3
else
return v2
end
end
if v2>v1
return v2
else
return v1
end
Код: Выделить всё
bind('Max', Max)
stop(evaluate(Max(5,6,9)))
unbind('Max')
Код: Выделить всё
bind('Max', Max)
stop(evaluate(Max(5,6)))
unbind('Max')
We are hard at work… for you. 
