169 похожих чатов

Совет нужен. Кто имел опыт создания своих компонентов DesignTime в

Lazarus. Есть невизуальный класс, для которого хочу попробовать сделать невизуальный DesignTime компонент на палитру. Сейчас в раздумье. Чтобы создать свой DT невизуальный компонент нужно будет его сделать наследником TComponent.
Изначальный RunTime класс сделан на основе TObject (ну не нужны мне были фишки TComponent). Вопрос: что делать?
1) Изменить изначальный RT класс?
2) В конструкторе нового DT компонента создавать объект RT компонента. НО не красиво: придётся дублировать все процедуры или при использовании придется постоянно обращаться через дочерний RT класс.

28 ответов

54 просмотра
Renat-Suleymanov Автор вопроса

Итак, я реализовал первый способ: fptelegram_dt.lpk Первая версия компонента: Это готовый longpolling телеграм бот, который вы можете использовать для быстрой разработки ботов для телеграм. здесь о longpolling телеграм ботах. Этот компонент можно использовать в приложениях с графическим и не графическим интерфейсом, демонах и службах и даже на веб-сервере (хотя на веб-сервере я предпочитаю web-хуки). Реализовал создание клавиатуры для телеграм ботов в дизайн-тайм. Простой пример использования: https://github.com/Al-Muhandis/fp-telegram/tree/master/examples/DesignTime и почти никакого кодинга.

Renat Suleymanov
Итак, я реализовал первый способ: fptelegram_dt.lp...

Я его использую уже год. Спасибо Вам. С моими навыками "закинуть на форму и написать обработчик" визуальный компонент это ещё лучше :)

Renat-Suleymanov Автор вопроса
©
Я его использую уже год. Спасибо Вам. С моими навы...

Он пока сырой (в смысле функционала, нужно будет докинуть множество методом и событий из основного raw класса TTelegramSender), так что если какой функционал нужно могу сделать акцент на этом. А если будут пуллреквесты - еще лучше )

Renat-Suleymanov Автор вопроса
Hemul GM
Через события работает?

Да, пока правда только три события из TTelegramSender реализовал. В рантайме классе их много. Нужно будет инкапсулировать их в компоненте дизайн тайм

Hemul GM
А многопоточность?

а зачем, сетевое соединение же все равно одно

Renat-Suleymanov Автор вопроса
Hemul GM
А многопоточность?

Если рантайм компонент реализуешь самостоятельно. В дизайнтайме: все в коробке. Он именно рассчитан для быстрой и несложной разработке. Все внутри создается

Arioch The
а зачем, сетевое соединение же все равно одно

Да как бы соединение одно, а запросов как бы много

Renat-Suleymanov Автор вопроса
Arioch The
а зачем, сетевое соединение же все равно одно

Не-не. ТАм действительно без многопоточности не обойтись. Как минимум для приема обновлений

Hemul GM
Да как бы соединение одно, а запросов как бы много

создавать поток на запрос - это плохая идея, вредная даже

Hemul GM
Создавать Таск - не вредная

TThreadList.Add про Omni не говорю, но его на лазаря никто видимо не станет портировать

Renat-Suleymanov Автор вопроса
Arioch The
но не на уровне же диспетчера

Вообщем там так: если райнтайм классы, то многопоточностью управляешь самостоятельно. ХОть пуллы задач, хоть много потоков, хоть один

Hemul GM
TTask TThreadPool Для Делфи

для дельфы я просто сделаю InputCollection.Put( <record с данными запроса> )

Renat-Suleymanov Автор вопроса
Hemul GM
Этот компонент без тредов?

Без. В режиме лонгполлинга идет опрос обновления на телеграм сервер. В случае получения апдейта, обработка его осуществляется в основном потоке. Пока так: для большинства задач норм.

Renat-Suleymanov Автор вопроса
Renat Suleymanov
Без. В режиме лонгполлинга идет опрос обновления н...

В смысле поток есть. Но обработка апдейта, которые делает пользователь на событии делается в основном потоке

Renat Suleymanov
Без. В режиме лонгполлинга идет опрос обновления н...

а что такое "в случае получения" ? я тебя там блокирующий запрос в отдельном потоке, или асинхронные I/O Completion ?

Hemul GM
Нет там запросов

что такоеvcomet / long polling ?

Arioch The
а что такое "в случае получения" ? я тебя там блок...

Там цикл на опрос сервера, где ответ может лететь до минуты

Renat-Suleymanov Автор вопроса
Renat Suleymanov
screenshot Да, пока правда только три события из TTelegramSen...

Опечаток конечно кучу наделал. А не исправлять. Сейчас увидел: callack вместо callback

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта