Страница 2 из 2

Пользовательские функции в Evaluate()

Добавлено: 05 Ноябрь 2015, 11:14
kreator
Я выше чуть-чуть привёл вариант функции. Строчка "if not omitted(3)" отрабатывается как надо.

Пользовательские функции в Evaluate()

Добавлено: 05 Ноябрь 2015, 11:19
Игорь Столяров
kreator писал(а): Строчка "if not omitted(3)" отрабатывается как надо.
Да ! С этого примера и начал.
Только 3-ий параметр всегда будет NOT OMITTED не зависимо от того, указан он при вызове функции или нет ...

Пользовательские функции в Evaluate()

Добавлено: 05 Ноябрь 2015, 12:03
kreator
Тогда ещё раз. Вот функция:

Код: Выделить всё

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')
Вот стоп:
1.jpg
Следующий вызов:

Код: Выделить всё

bind('Max', Max)
stop(evaluate(Max(5,6)))
unbind('Max')
Вот стоп:
2.jpg