-
Постов
828 -
Зарегистрирован
-
Посещение
-
Победитель дней
13
Весь контент x11
-
У кого есть пример использования клавиатуры? TtgInlineKeyboardMarkup TtgInlineKeyboardButton procedure TForm1.btnSendKeyBoardClick(Sender: TObject); Var UserLink: TtgUserLink; Kb: TtgInlineKeyboardMarkup; begin UserLink := StrToInt64Def(edChatId.Text, 0); if UserLink.ToString = '0' then begin Memo1.Lines.Add('SendMsg: ' + edChatId.Text + ' is not valid integer value'); exit; end; Kb := TtgInlineKeyboardMarkup.Create; try Kb.AddRow([TtgInlineKeyboardButton.Create('1'), TtgInlineKeyboardButton.Create('2'), TtgInlineKeyboardButton.Create('3'), TtgInlineKeyboardButton.Create('4')]); Kb.AddRow([TtgInlineKeyboardButton.Create('5'), TtgInlineKeyboardButton.Create('6'), TtgInlineKeyboardButton.Create('7'), TtgInlineKeyboardButton.Create('8')]); TelegramBot1.SendMessage(UserLink, edChatMsgText.Text, TtgParseMode.default, False, False, 0, KB); finally kb.DisposeOf; end; end; в итоге получаю ошибку Project raised exception class EArgumentException with message 'В данном методе указанное значение не может быть таким, как и значение по-умолчанию'.
-
Может кому пригодится https://blog.andreamagni.eu/2019/02/how-to-add-android-app-shortcuts-to-a-fmx-application/
-
Предупреждаю! Автор зачем-то использует формат файлов UNIX. Поэтому все файлы нужно преобразовать (пересохранить) в формат Windows (CR LF) иначе отладчик сходит с ума в буквальном смысле - останавливается не на точках остановки, переходит между строк, а доводчик кода (code insight) вообще не работает.
-
ну.... другого нет
-
AllaKore_Remote программа удалённого доступа по принципу IP-to-ID, как Тимвьювер. Т.е. клиент + сервер, которые раздаёт ID. Исходники открыты. https://github.com/Maickonn/AllaKore_Remote У меня на Delphi Tokyo скомпилировалось и работает. Хотя и куча предупреждений при компиляции. Пока что 2 минуса. 1. ID Каждый раз новый, нет привязки к ПК. 2. Клиентская часть не в виде службы, а в виде обычного приложения. /delphi remote admin open source/
-
я уже не помню, но туту нужно погуглить/поспрашивать, как передавать данные между андроидовскими службами и приложениями тут тоже есть примеры и описания
-
Ну так об этом как раз в этой теме и идёт речь
-
В общем сделал через GetFileUrl procedure GetChatAva; Var chat: ItgChat; iChatID: int64; s: string; tgFile: ItgFile; img_stream: TMemoryStream; begin iChatID := ....; chat := bot.GetChat(iChatID); if not Assigned(chat) then begin exit; end; s := chat.Photo.SmallFileId; tgFile := bot.GetFile(s); if not Assigned(tgFile) then begin exit; end; s := tgFile.GetFileUrl(aBotToken); if s.IsEmpty then begin exit; end; img_stream := TMemoryStream.Create; try DownloadImage(s, img_stream); if img_stream.Size <= 0 then begin exit; end; finally img_stream.DisposeOf; end; end;
-
Кто-нибудь пытался получить аватарку (картинку) канала? Бот добавлен в публичный канал и имеет доступ к сообщениям. При получении сообщения хочу получить аву, но код всегда возвращает false if Assigned(AMessage.Chat.Photo) then Или подскажите, как правильно, в какой момент получить значок канала? Может нужен специальный запрос в API? Спасибо.
-
Можно передать значение переменной любым доступным/удобным способом. Их вагон и маленькая тележка.
-
qubasesx, вписывай IP в любой форме и сохраняй куда-нибудь, например в базу, а из DataModule читай из базы.
-
В общем, это связано с тем, что в новых андроидах проверка прав приложения происходит непосредственно при выполнении той или иной функции, которая требует этих прав. Поэтому нужно при выполнении этой функции обрабатывать запрос прав.
-
Библиотека Alcinoe для iOS/FMX
x11 опубликовал тема в Приложения, написанные с использованием FireMonkey
На просторах sql.ru нашёл ссылку на приложение kiskis на Delphi/FMX. Что-то типа мессенджер+инстаграм. https://youtu.be/WEsEhGfrW-g Alcinoe is a library visual and non-visual components for Delphi. https://github.com/Zeus64/alcinoe -
Начинает доходить, как скачать, переданные боту картинки. У TItgMessage есть свойство "&Type", не знаю, зачем разработчики сделали с "&". Этот "TItgMessage.&Type" определяет тип сообщения: картинка, видео, контакт и т.д. И вот в событии tgReceiverUI.OnUpdate можно определить тип сообщения: if Assigned(AUpdate.message) then begin case AUpdate.message.&Type of TtgMessageType.Photo: ReceivePhoto(AUpdate.message.Photo); end;// case end; обрабатываем массив полученных фото procedure TForm1.ReceivePhoto(Photos: TArray<TelegAPi.Types.ItgPhotoSize>); Var PhotoSize: TelegAPi.Types.ItgPhotoSize; tgFile: ItgFile; FileUrl: string; begin for PhotoSize in Photos do begin tgFile := TelegramBot1.GetFile(PhotoSize.FileId); if tgFile.CanDownload then begin FileUrl := tgFile.GetFileUrl(TelegramBot1.Token); Memo1.Lines.Add('ReceivePhoto, FileUrl: ' + FileUrl);// получаем прямую https-ссылку на картинку jpg. end; end; end; Дальше пока не разобрался с методом скачивания. То ли у библиотеки уже есть встроенные методы скачивания, то я сам должен скачать. Поискал по исходникам слово Download - ничего такого не нашёл
-
Я не смотрел проект и буду подсказывать, как. Просто напишу, что LiveBinding - тормознутая и глючная технология. Разработчики так и не довели её до ума. Если есть возможность, лучше отказаться от LiveBinding.