Пара компонентов:
Function - создает новую функцию.
CallFunction - вызывает созданную функцию.
Элементы аналогичны элементам из пакета WEB, за тем исключением, что эти построены на Менеджерах (с версии 1.1 менеджеры не используются)
[burl=/getfile/23359]Скачать последнюю версию[/burl] (в архиве имеется пример вычисления факториала)
Скачать версию 1.1 (в архиве имеется пример использования)
Скачать версию 1.0 (в архиве имеется пример использования)
Установить компонент
Этот топик читают: Гость
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
карма: 10 |
| ||
файлы: 3 | function.rar [3KB] [341], function1.1.rar [3.6KB] [358], function1.2.rar [4.8KB] [370] | ||
Голосовали: | hitman249, foksov, Roma, sla8a, vovs, MAV, Konst, Ivann, sаmakacd, login, CriDos |
Ответов: 1528
Рейтинг: 57
|
|||
Assasin, а если из разных контейнеров?
|
|||
карма: 0 |
|
Ответов: 8926
Рейтинг: 823
|
|||
hitman249, а проверить
Assasin, молодец! |
|||
карма: 19 |
|
Ответов: 1528
Рейтинг: 57
|
|||
Леонид, да уже проверил
|
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 5 раз(а), последний 2021-06-22 15:03:21 |
|||
карма: 0 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Assasin, куда бы ещё её спрятать?
|
|||
карма: 3 |
|
Ответов: 8926
Рейтинг: 823
|
|||
MAV, в другую программу (можно в *.dll)
|
|||
карма: 19 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
MAV писал(а): Assasin, куда бы ещё её спрятать?Что значит спрятать? hitman249 писал(а): Assasin, а если из разных контейнеров?Этого, к сожалению, не позволяет технология менеджеров, можно перейти, конечно, на аналог GlobalVar, но нужно ли? Есть, кстати, у одного из компонентов один баг, никто не заметил? Ооо, только что понял, даже 2 бага! |
|||
карма: 10 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Что значит спрятать?
Схему функции убрать с рабочего поля, т.е. спрятать в контейнер в DLL и т.д. ------------ Дoбавленo в 15.57: Есть, кстати, у одного из компонентов один баг, никто не заметил? Ооо, только что понял, даже 2 бага!
Assasin, ты хочешь чтоб люди мозги сломали |
|||
карма: 3 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
MAV писал(а): Схему функции убрать с рабочего поля, т.е. спрятать в контейнер в DLL и т.д.Решение только одно: сделать как в GlobalVar, вот только не знаю, работают ли глобальные переменные из программы в DLL и наоборот. MAV писал(а): Assasin, ты хочешь чтоб люди мозги сломали Хочу! Подсказка Рекурсия |
|||
карма: 10 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Assasin, а что не так, усё работает
|
|||
карма: 3 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
MAV писал(а): Assasin, а что не так, усё работаетГыгы, и работает неправильно! По идее у тебя результат возвращает только вызов самой последней функции, а все функции, в которых счетчик <> 10 вообще ничего не возвращают, итого, вывод главного вызова "10" - неверен. Вот так выглядит код на дельфи той функции, что ты предоставил:
------------ Дoбавленo в 17.01: То же касается передачи параметров функции, после вложенного вызова функции, текущая функция теряет доступ к переданным ей параметрам ------------ Дoбавленo в 16.03: Переделал функции. Теперь они глобальные и могут использоваться в любом месте. А так же поправлены вышеобозначенные баги. Ссылка в первом посте ------------ Дoбавленo в 20.42: Версия 1.2 (пожалуй, последняя): 1. Исправлен баг с утечкой памяти при использовании МТ-потоков в параметрах вызова функции. 2. Добавлены новые 32-битные иконки. 3. Ссылка в первом посте |
|||
карма: 10 |
|
Ответов: 1304
Рейтинг: 405
|
|||
То же касается передачи параметров функции, после вложенного вызова функции, текущая функция теряет доступ к переданным ей параметрам
А так же поправлены вышеобозначенные баги
Assasin, посмори на пример вычисления n-го числа Фибоначчи, можно решить исходя из принципа действия алгоритма, но хотелось бы как в исходнике. code_23395.txt |
|||
карма: 3 |
| ||
файлы: 1 | code_23395.txt [6.7KB] [418] |
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
MAV, такое невозможно, так как событие функции не создает (да и не может) копии компонентов, методы которых она вызывает. Можно решить это, если переделать компонент-функцию как отдельный динамический контейнер (как в варианте с TCP_ServerEx)
|
|||
карма: 10 |
|
Ответов: 1304
Рейтинг: 405
|
|||
Можно решить это, если переделать компонент-функцию как отдельный динамический контейнер (как в варианте с TCP_ServerEx)
Assasin, к сожалению для меня это тёмный лес , могу только сказать что стоит ли так заморачиваться на рекурсии, будет ли данная возможность востребована?, рекурсивные методы требуют высокого быстродействия что не достижимо в рамках элемента Function. |
|||
карма: 3 |
|