|
|
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X-CiteЕсли метод не public или published то по умолчанию их в RTTI нет, вроде бы.. Я про это читал, но думал, что это только старой self.GetProcAddress касается. Ок, ладно, но почему условие срабатывает, если имя метода не находит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 11:59 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11Ок, ладно, но почему условие срабатывает, если имя метода не находит? Скорее всего. косяк отладчика. Сделай вывод в лог, наверняка там будет все правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:22 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:30 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
Ок, я перенес нужные методы в public. Теперь нужный метод найден, но... exceptionProject raised exception class EInvalidCast with message 'Invalid class typecast' на вот этой строке Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:34 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
Наглядное пособие переинженеринга -- как вот эта простая конструкция: Код: pascal 1. превратилась вот в этого монстра: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:38 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
JaDi, сперва нужно сделать, чтобы "заработало" пусть даже и в виде монстра, а потом уже и причесать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 13:46 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11Ок, я перенес нужные методы в public. Теперь нужный метод найден, но... exceptionProject raised exception class EInvalidCast with message 'Invalid class typecast' на вот этой строке Код: pascal 1. У вас в вашем методе, оба параметра типа string ? Передавайте те значения параметров и того типа, что в методе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:03 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11, видимо, я что-то пропустил -- чем не устроила универсальная модель, когда на вход обработчику подаются параметры в универсальном виде типа строки/списка/json'а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:08 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
JaDiчем не устроила универсальная модель, когда на вход обработчику подаются параметры в универсальном виде типа строки/списка/json'а? Поддерживаю. Первое слово всегда команда, остальное, если есть, параметры. В обработчик команды передаются только параметры. К чему эти огороды? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:11 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X-CiteУ вас в вашем методе, оба параметра типа string ? блиииииииииииииин Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:26 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
переделал на From: ItgUser Код: pascal 1. 2. 3. всё равно Invalid class typecast ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:31 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
wadmanJaDiчем не устроила универсальная модель, когда на вход обработчику подаются параметры в универсальном виде типа строки/списка/json'а? Поддерживаю. Первое слово всегда команда, остальное, если есть, параметры. В обработчик команды передаются только параметры. К чему эти огороды? 1. Первым словом может быть не /команда, а просто текст какой-нибудь. И тоже нужно обработать. 2. Если всё же /команда, то нужно понять, что именно за команда и вызвать соответствующую процедуру, передав ей ВЕСЬ текст, например, "/Показать 15973". Вроде бы я никуда не отклонялся. Пытаюсь сделать универсальную масштабируемую модель. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:35 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11И тоже нужно обработать. Боты без команд не работают. По меньшей мере я не сталкивался. Ну или пример "какого-нибудь" текста? Из жизни, по возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:37 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
wadman, работают ещё как Что такое "команда боту"? Это то, что ты САМ, как программист, запрограммируешь в бота, т.е. любое сочетание любых символов. Это же просто текст. Просто есть какие-то общепринятые нормы и понятия. Бот ведь работает не на их стороне, т.е. не на стороне Вайбера или Телеграма, а на твоей. Сервер тебе просто пересылает то, что напечатал/выбрал пользователь. Никто не запрещает сделать так, что команды будут начинаться не чертой /, а * звёздочкой, например. Или вообще без таковых. Например, боты с ИИ: ты ему пишешь текст, а он отвечает, разобрав текст предварительно. Например, пишешь "какая сейчас погода в Харькове", а бот лезет в сеть, получает данные и отвечает "такая-то погода". И нет никаких команд, разве не так? ну как-то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:47 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
wadmanНу или пример "какого-нибудь" текста? Из жизни, по возможности. Есть идея запилить приём текстовых объявлений на какой-нибудь портал: автомобильный или по недвижимости типа вашего Авито или нашего OLX, хотя это одно и то же (владелец из Южной Африки - Насперс). Распарсил текст, разбил на части: тип, цена, район, площади, коробка передач, размер трусов, фокусное расстояние объектива и т.д. И не надо никаких команд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:50 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11Например, пишешь "какая сейчас погода в Харькове", а бот лезет в сеть, получает данные и отвечает "такая-то погода". И нет никаких команд, разве не так? Тогда и не нужно никакого списка с командами и методами? Изначально-то тема касалась именно списка команд. А тут уже и ИИ вылез и скоро тело прикрутим. Женское. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:54 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X111. Первым словом может быть не /команда, а просто текст какой-нибудь. И тоже нужно обработать. 2. Если всё же /команда, то нужно понять, что именно за команда и вызвать соответствующую процедуру, передав ей ВЕСЬ текст, например, "/Показать 15973". Вроде бы я никуда не отклонялся. Пытаюсь сделать универсальную масштабируемую модель. Было еще в самом начале 21717308 Менеджер определяет, что за команда и отправляет ее нужному боту: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 14:55 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
wadmanТогда и не нужно никакого списка с командами и методами? это уже сам программист решает, мне - нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:01 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
JaDiБыло еще в самом начале 21717308 Менеджер определяет, что за команда и отправляет ее нужному боту: да не проблема.... проблема в том, когда пользователь скажет, что "я хочу, чтобы бот выполняет вот это запрограммированное действие на три похожие команды" и что, мне каждый раз добавлять и перекомпилировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:03 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11переделал на From: ItgUser Код: pascal 1. 2. 3. всё равно Invalid class typecast Код: pascal 1. Вы читали хелп? Что идет первым параметром? Если у вас метод класса, то надо передать Указатель на экземпляр класса в контексте которого будет вызываться метод Если у вас классовый метод, то надо передать сам класс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:06 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X11и что, мне каждый раз добавлять и перекомпилировать? Есть иные способы? Разве что на сервер отправлять, вот и весь бот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:11 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X-Cite, т.е. просто self вписать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:15 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
X-Cite, спасибо, теперь дошло Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:16 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
wadman, да, я же уже запилил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:17 |
|
||
|
Дженерики: передача процедуры в качестве параметра
|
|||
|---|---|---|---|
|
#18+
wadman, на предыдущих страницах я показывал скрины. Идея в том, что у дерева есть корневые узлы - это действия, к которым привязаны методы (процедуры), т.е. то, что умеет бот. Дочерние узлы - это команды. Команды пользователь может редактировать (добавлять, удалять, переименовывать, отключать, включать) т.е. можно сделать так, что если первое или единственное слово, полученное ботом, будет не "/старт", а "старт", то его тоже можно обработать, так же, как и "/start". Для этого пользователь просто добавляет узел см текстом "старт" в качестве дочернего к корневому "СТАРТ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2018, 15:24 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39729955&tid=2038887]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
83ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 488ms |

| 0 / 0 |
