Перейти к содержанию

Лидеры


Популярный контент

Показан контент с высокой репутацией за 05.06.2020 во всех областях

  1. 2 балла
    Slym

    Чтение QR кода, нужен компонент или тулза

    hints: TDictionary<TDecodeHintType, TObject>; l: TList<TBarcodeFormat>; begin if not Assigned(FScanManager) then begin hints := TDictionary<TDecodeHintType, TObject>.Create(); l:=TList<TBarcodeFormat>.Create; l.Add(TBarcodeFormat.QR_CODE); hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l); FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints); не тестил
  2. 2 балла
    https://unix.stackexchange.com/questions/58846/viewing-linux-library-executable-version-info
  3. 2 балла
    Losev Andrei

    Нестандартные иконки в FMX Premium Styles

    В конце концов решил проблему за счет замены изображений из FMX Premium Styles на разработанные icons8.com. При этом можно качать с сайта, но удобнее установить их бесплатное приложение Pichon. Условия использования: For smartphone apps, please set a link to https://icons8.com in the About dialog or settings. Also, please credit our work in your App Store or Google Play description (something like "Icons by Icons8" is fine).
  4. 2 балла
    krapotkin

    Сортировка TListViewItems

    кривое тз всегда дает еще более кривое решение сортировать надо данные, а не компоненты на экране отсортировать список - доли секунды, вывести его на экран - тоже а вот работать с неповоротливыми экранными компонентами это ну никак не быстро
  5. 1 балл
    #WAMACO

    Web Server под Android

    Идея не верна! Лучше отказаться от этой затеи!
  6. 1 балл
    gonzales

    поломались ПУШи в 10.4

    Нашел причину, В недрах класса TPushService TPushService = class abstract public type TPropPair = TPair<string, string>; TPropArray = TArray<TPropPair>; // commonly used names TServiceNames = record public const GCM = 'gcm'; // deprecated 'Is not available anymore. Please use FCM instead'; // Google cloud messaging FCM = 'fcm'; // Google Firebase cloud messaging APS = 'aps'; // Apple end; Соответственно нужно исправить FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); на FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM); Все работает
  7. 1 балл
    krapotkin

    Открыть сайт из локальной папки (WebView)

    а откуда у вас там адресная строка и навигация? или вы даже не смотрели?
  8. 1 балл
    Vitaldj

    Unable to create process

    В РИО глюк с Каталиной, там надо что то править, сходу не скажу. Это поправили в 10.4
  9. 1 балл
    Игорь Маринин

    EnCore! караоке плеер

    мобильная андроид версия плеера, предназначенная для установки на смартфоны, планшеты, медиаприставки, смарт TV и т.п. APK установщик Goggle Play русскоязычный караоке плеер.для проигрывания плееру необходим доступ к сети интернет. в базе плеера собрано более 100 000 караоке песен!- миди караоке,- караоке с бэк вокалом с дисков: LG, Samsung, BBK- зарубежное CDG караоке- профессиональное минусовое MP3 (EMP) караокев плеере имеется возможность поиска караоке песен по автору, названию песни, тексту песни, возможность указать свои любимые песни для быстрого дальнейшего поиска. поддерживается голосовой ввод. так же доступен вариант локального проигрывания караоке: KAR, CDG, MP3+LRC, KFN
  10. 1 балл
    Олег Киреев

    Апдейт: FastReport FMX 2.7

    СпасиБО за ответ. Сообщите пожалуйста когда будет готов. С Уважением. Олег.
  11. 1 балл
    Олег Киреев

    Апдейт: FastReport FMX 2.7

    Елена. Существует ли FastReport для разработки приложений для OS Android? С Уважением. Олег.
  12. 1 балл
    x11

    Перехват события звонка

    да, запретил
  13. 1 балл
    krapotkin

    Сортировка TListViewItems

    так вот речь и идет о том, что компоненты должны быть отдельно, а данные отдельно если мы под компонентами понимаем одно и то же - экранные компоненты, предназначенные для отображения данных человеку программа не человек, ей компоненты побоку, ей бы переменные, классы, списки. ну и по коду - ошибка - обращение к переменной form1 внутри метода класса TForm1
  14. 1 балл
    gonzales

    Сортировка TListViewItems

    если бы все было так просто... в моем случае TEssense - это родительский класс для других компонентов, сортировать на этапе создания - означало бы иметь кучу вложенных циклов, не уверен, что это было бы шустро. А ларчик просто открывался, по недогляду забыл про Result:=0; Вот рабочий код procedure TForm1.SortGroup; begin Form1.RoomsScrollBox.sort( function(LeftItm, RightItm: TFmxObject): integer begin Result := 0; if TEssence(LeftItm).SortIndex > TEssence(RightItm).SortIndex then Result := 1 else if TEssence(LeftItm).SortIndex < TEssence(RightItm).SortIndex then Result := -1; end); end; Не забываем про BeginUpdate, EndUpdate
  15. 1 балл
    1. возьмите свежую версию делфи 2. проблема у вас с настройкой окружения для разработки - SDK и NDK. Если все установлено настроено по инструкции, то все и работает
  16. 1 балл
    krapotkin

    Formatter для Delphi

    CnWizards + CtrlW ?
  17. 1 балл
    В Линуксе просто нет никаких стандартов для размещения версии внутри бинарника. Ембаркадера об этом не в курсе, но по привычке воткнула пустую заглушку ))) Забейте, и просто делайте свою константу с версией.
  18. 1 балл
    apk создается при Deploy соотв-но project - compile, потом project - deploy
  19. 1 балл
    Евгений Корепов

    IdTCPClient, IdTCPServer и соеденение

    Тут все просто - нужно ждать. Ваш код работает корректно только в идеальных условиях. Но если вторая сторона не ответила мгновенно, то вы уже ничего не получите. Перед отправкой/получением вам надо проверить наличие соединения функцией FTCPClient.IOHandler.CheckForDisconnect() - при отсутствии соединения она сгенерит исключение: try FTCPClient.IOHandler.CheckForDisconnect(); except on E: EIdException do begin LogError('TUTM5StreamProtocol.Run CheckForDisconnect ERROR ' + E.Message); Reconnect(); end; end; Читать с ожиданием данных можно несколькими способами: 1. Задавать FTCPClient.IOHandler.ReadTimeout в надежде что в отведенное время что то придет. 2. Использовать FTCPClient.IOHandler.ReadLnWait() для чтения строки. 3. Или обрабатывать проверять наличие данных и читать по мере их поступления: if FTCPClient.IOHandler.CheckForDataOnSource(FConnectParams.Timeouts.TCPReadTimeout) then читаем....
  20. 1 балл
    Дмитрий Потапов

    libbass.so не загружается.

    Держите, кому нужно. В архиве библиотеки BASS (для Windows и Android), а так же все найденные мною дополнения (У меня есть дополнения не для всех платформ. Например, какие-то дополнения я нашел только под Windows, а библиотеки каких-то дополнений BASS есть не на каждый процессор) ВАЖНОЕ ЗАМЕЧАНИЕ: Для дополнений у меня нет юнитов, но их не сложно сделать самому. Просто скачиваем с сайта un4seen необходимые плагины для Windows и переписываем его на динамическую загрузку (LoadLibrary, GetProcAddress и т.д.). Библиотеку протестировал, проверил не все функции, но основное все работало прекрасно. Проверял следующее: BASS_Init, BASS_StreamCreateFile, BASS_StreamCreateURL, BASS_ChannelPlay, BASS_ChannelPause, BASS_ChannelIsActive, BASS_ChannelGetAttribute, BASS_ChannelSetAttribute, BASS_ChannelGetLength, BASS_GetConfig, BASS_SetConfig, BASS_GetConfigPtr, BASS_SetConfigPtr (вроде все, может что-то упустил). Все работало на Windows и Android. Если нужна будет помощь с подключением библиотеки - задавайте вопросы bass.zip
  21. 1 балл
    Евгений Корепов

    Запуск демона на Linux

    Вот просто идеальная статья по запуску демона под Linux http://blog.paolorossi.net/2017/09/04/building-a-real-linux-daemon-with-delphi-part-2/ Помимо объяснения механизма fork с отличными примерами, есть куча дополнительной наиполезнейшей инфы.
  22. 1 балл
    Друзья, вы будете смеяться - Эмбаркадера наконец то обратила внимание на заявку по этой проблеме. Правда в стиле моя-твоя непонимай ))) https://quality.embarcadero.com/browse/RSP-16910
  23. 1 балл
    Решение найдено, еще раз пересмотрел статью Равиля, этого там нет. необходимо для андройд также добавить Google application id из firebase в Project->Options->Services->Google application id
  24. 1 балл
    Алиса Романец

    Запуск внешней программы

    Добавляешь в проект POSIX uses Posix.Stdlib, Posix.Unistd; После, в нужном тебе событии вызываешь __system(PAnsiChar('/путь/к/приложению & disown')) Команда в PAnsiChar зависит от дистрибутива. Но принцип работы такой, что POSIX отправляет в Терминал команду. Так что, можно отправить в Терминал команду на открытие сторонней программы и методом & disown открепить её от процесса Терминала.
  25. 1 балл
    В общем удалось решить проблему с кнопками пульта. Теперь приложение распознает все кнопки с пульта. Если кому-то нужно, прикрепил архив. (Delphi 10.3.1 Rio) fmx_androidkey_fix.zip
  26. 1 балл
    Android/iOS var clientScreenScale : Single; clientScreenSize : TSize; clientScreenService : IFMXScreenService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(clientScreenService)) then clientScreenScale := clientScreenService.GetScreenScale else clientScreenScale := 1; // The display device's width: clientScreenSize.CX := Round(clientScreenService.GetScreenSize.X * clientScreenScale); // The display device's height: clientScreenSize.CY := Round(clientScreenService.GetScreenSize.Y * clientScreenScale); end;
  27. 1 балл
    #WAMACO

    TakePhotoFromLibraryAction загрузка видео , GIF

    Кстати, давно хотел спросить, а можете по шагам рассказать технологию, как Вы пример на Java переводите в Delphi код?
  28. 1 балл
    Axbor

    MaskEdit

    // --------------------------------------------------------------------------- #include <fmx.h> #pragma hdrstop #include "Unit1.h" // --------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.fmx" TForm1 *Form1; // --------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Mask = "+7(00)000-00-00;0;*"; PhoneNumber = ""; } // --------------------------------------------------------------------------- void __fastcall TForm1::edtPhoneTyping(TObject *Sender) { edtPhone->CaretPosition = GetCaretPos(); } // --------------------------------------------------------------------------- int __fastcall TForm1::GetCaretPos() { int i; int Result = 0; for (i = 0; i < Mask.Length(); i++) { if (!(MaskGetCharType(Mask, i) == mcDirective || MaskGetCharType(Mask, i) == mcMask)) Result += 1; if ((Result + PhoneNumber.Length()) == i) break; } Result = Result + PhoneNumber.Length() - 1; return Result; } int __fastcall TForm1::GetMaxLength() { int Result = 0; for (int i = 0; i < Mask.Length(); i++) if (MaskGetCharType(Mask, i) == mcMask) Result = Result + 1; return Result; } void __fastcall TForm1::edtPhoneKeyDown(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift) { if ((Key == 8) && (PhoneNumber.Length() > 0)) PhoneNumber = PhoneNumber.SubString(1, PhoneNumber.Length() - 1); else if ((PhoneNumber.Length() < GetMaxLength()) && (Key == 0) && IsDigit(KeyChar)) PhoneNumber = PhoneNumber + KeyChar; else KeyChar = 0; } // --------------------------------------------------------------------------- void __fastcall TForm1::edtPhoneKeyUp(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift) { edtPhone->CaretPosition = GetCaretPos(); } //--------------------------------------------------------------------------- void __fastcall TForm1::edtPhoneValidating(TObject *Sender, UnicodeString &Text) { Text = FormatMaskText(Mask, PhoneNumber); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { edtPhone->Text = FormatMaskText(Mask, PhoneNumber); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <System.Classes.hpp> #include <FMX.Controls.hpp> #include <FMX.Forms.hpp> #include <System.MaskUtils.hpp> #include <FMX.Controls.Presentation.hpp> #include <FMX.Edit.hpp> #include <FMX.StdCtrls.hpp> #include <FMX.Types.hpp> #include <System.Character.hpp> #include <string.h> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // IDE-managed Components TEdit *edtPhone; TButton *Button1; void __fastcall edtPhoneTyping(TObject *Sender); void __fastcall edtPhoneKeyDown(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift); void __fastcall edtPhoneKeyUp(TObject *Sender, WORD &Key, System::WideChar &KeyChar, TShiftState Shift); void __fastcall edtPhoneValidating(TObject *Sender, UnicodeString &Text); void __fastcall FormCreate(TObject *Sender); private: // User declarations public: String PhoneNumber; String Mask; int __fastcall GetCaretPos(); int __fastcall GetMaxLength(); // User declarations __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif Для тех кому нужен на C++
  29. 1 балл
    DirtyBorov

    MaskEdit

    Случилось так, что потребовался мне ввод номера телефона. Компонента, аналога TMaskEdit в FMX нет, так что пришлось "изобретать на коленке". Компонент писать было лень, потому просто покажу как я решил это в конкретном диалоге с использованием TEdit. Может кому то пригодится. Из кода я убрал все лишнее, оставил только то что относится к делу. uses .... System.MaskUtils, System.Character; type TFormRegistry = class(TForm) edtPhone: TEdit; procedure edtPhoneValidating(Sender: TObject; var Text: string); procedure edtPhoneKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure edtPhoneEnter(Sender: TObject); procedure edtPhoneTyping(Sender: TObject); private const Mask = '+7(000)000-00-00;0;*'; /// '+0(000)000-00-00;0;*' - для других стран, например для Украины +3(999).... private PhoneNumber: string; function GetCaretPos: Integer; function GetMaxLength: integer; public end; procedure TFormRegistry.FormCreate(Sender: TObject); begin edtPhone.Text := FormatMaskText(Mask, PhoneNumber); end; function TFormRegistry.GetCaretPos: Integer; var i: integer; begin Result := 0; for i := 0 to Mask.Length-1 do begin if not (MaskGetCharType(Mask, i) in [mcDirective, mcMask]) then Result := Result + 1; if (Result + PhoneNumber.Length) = i then Break; end; Result := Result + PhoneNumber.Length - 1; end; function TFormRegistry.GetMaxLength: integer; var i: integer; begin Result := 0; for i := 0 to Mask.Length-1 do if (MaskGetCharType(Mask, i) in [mcMask]) then Result := Result + 1; end; procedure TFormRegistry.edtPhoneKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin if (Key = 8) and (PhoneNumber.Length > 0) then PhoneNumber := Copy(PhoneNumber, 1, PhoneNumber.Length-1) else if (PhoneNumber.Length < GetMaxLength) and (Key = 0) and IsDigit(KeyChar) then PhoneNumber := PhoneNumber + KeyChar else KeyChar := #0; end; procedure TFormRegistry.edtPhoneEnter(Sender: TObject); begin edtPhone.CaretPosition := GetCaretPos; end; procedure TFormRegistry.edtPhoneTyping(Sender: TObject); begin edtPhone.CaretPosition := GetCaretPos; end; procedure TFormRegistry.edtPhoneValidating(Sender: TObject; var Text: string); begin Text := FormatMaskText(Mask, PhoneNumber); end; end.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...