|
|
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11JaDiБыло еще в самом начале 21717308 Менеджер определяет, что за команда и отправляет ее нужному боту: да не проблема.... проблема в том, когда пользователь скажет, что "я хочу, чтобы бот выполняет вот это запрограммированное действие на три похожие команды" и что, мне каждый раз добавлять и перекомпилировать? Нет, достаточно договориться о протоколе. Например, что каждая команда должна начинаться со спецсимвола типа \. Или что несколько команд можно задать в виде скобок. Или в видео start -end. Короче, вариантов масса. И всё это реализуется как раз в одном месте -- в менеджере, который должен распарсить сообщение пользователя и дальше передать в обработку (одному, нескольким ботам или сразу пачкой команд). Эти правила будут действовать для всех (боты будут видеть эти команды как отдельные -- без пользовательских сессий будет проблемно объединить их в одну пачку... короче, тут много вариантов в зависимости от требований). Или если речь про конкретного бота -- то пускай он для себя и парсит в той нотации, что ему удобнее (собственно, так боты в том же телеграмме и других чатах так и работают) -- у всех свои правила для обработки. Пример: "бот1 скачай лалала преобразуй в какака сожми отправь ссылку на лулулу" Команда: "бот1" Параметры: "скачай лалала.... на лулулу". На вход бот1 получает список и дальше сам парсит. Например, команда, команда и параметр. Команда: "скачай", параметр: "лалала" Команда: "преобразуй в", параметр: "какака" Команда: "сожми", дефолтный параметр: результат с последней команды Команда: "отправь ссылку на", параметр: "лулулу" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:27 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
JaDiИ всё это реализуется как раз в одном месте -- в менеджере, который должен распарсить сообщение пользователя и дальше передать в обработку (одному, нескольким ботам или сразу пачкой команд). ну я вроде бы так и делаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:31 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
JaDiПример: "бот1 скачай лалала преобразуй в какака сожми отправь ссылку на лулулу" Команда: "бот1" Параметры: "скачай лалала.... на лулулу". да, я так примерно и делаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:34 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
А точно, баг в Invoke происходит из за Pointer Код: pascal 1. Не сможет вызвать не один тип PInteger, Pointer и прочие. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Хочу напомнить, что всё же можно напороться на этот баг, примеру с вызовом функции TStyleManager.SetStyle ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 01:50 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
Так типы то якобы разные... Вот так работает... Не надо совмещать похожие но не одинаковые типы... Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 11:53 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
Гирлионайльдо, да, я читал твою тему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2018, 12:59 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
Итак, оно работает :) как-то так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но это всё работает в модуле главной формы и получается так, что интерфейс виснет, если много команд сразу... теперь следующий этап - это нужно перенести в отдельный поток... вопрос в том, будет ли rmethod.Invoke работать не в модуле формы, а в отдельном потоке? Или это не важно, был бы класс и public-методы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2019, 14:41 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2038887]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
144ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 439ms |

| 0 / 0 |
