Лидеры
Популярный контент
Показан контент с высокой репутацией 10.02.2018 во всех областях
-
Нужен нормальный JSON парсер
Равиль Зарипов (ZuBy) и 3 других отреагировал Brovin Yaroslav за вопрос
Если пытаться кормить json парсер кривым json и ожидать, что почему вдруг объект станет неожиданно массивом и не будет исключений, то таких парсеров вам не найти. Проще написать самому: быстро, дешево, без 100500 классов и исключений. И такой, который будет считать, что {} - это массив. А вообще, рекомендую начать с http://www.json.org/ Возможно, после этого придет понимание того, почему нужно то или иное количество классов, ну или хотя бы вы сами разберетесь и поймете, почему так происходит.4 балла -
Как я понимаю модуль FMX.FontGlyphs.Android.pas подключен из Берлинской версии студии. Вам нужен этот файлик для Токио. Как я понимаю, используете что-то типа FontAwesome. Например, на гитхабе Равиля этот файл есть версии и для Берлин и для Токио.4 балла
-
в делфи делается так - li:= lv.Items.Add; lii:=li.Objects.FindObjectT<TListItemImage>('Image'); lii.OwnsBitmap:=True; далее можно грузить картинку, если в потоке то TThread.Synchronize(TThread.CurrentThread, procedure() begin // присваивание битмапу картинки lii.Bitmap:= TBitmap.Create; lii.Bitmap.SetSize(ItemBitmap.Width, ItemBitmap.Height); lii.Bitmap.Clear(TAlphaColors.Null); lii.Bitmap.CopyFromBitmap(ItemBitmap); end );2 балла
-
Запрет нажатия на контролы внутри ScrollBox при прокручивании
МихаилЪ чайковЪ отреагировал ophion за вопрос
Добрый день. В рантайме создаются TButton и помещаются в TVertScrollBox. Если во время прокручивания нажать пальцем на TButton, то срабатывает событие OnClick. Собственно вопрос... как избежать такого поведения? Т.е. как разрешить нажатие на кнопки только после того, как прокручивание остановилось?1 балл -
Где физически на устройстве находится файл нам знать и не надо, а для работы со своей и общими папками никакой root не нужен. Опять же, не должно ничто само обновляться и перезаписываться из apk на устройстве! В функции CopyAssetToFile даже специально комментарий оставлен в месте, где идет проверка наличия файла на устройстве. х11, делайте обновление своей базы в коде, при запуске, а не перезаписывайте ее пустой (прямо представил, как при обновлении того же вайбера затирается вся переписка, прямо прелесть)1 балл
-
Failure retrieving resources
x11 отреагировал Равиль Зарипов (ZuBy) за вопрос
Holo это 4+, но ниже 4.41 балл -
Нужен нормальный JSON парсер
mazayhin отреагировал Равиль Зарипов (ZuBy) за вопрос
хотите облегчить себе жить? ваших коллег не следует допускать к бэкенду. изучите все вместе структуру json и приведите ответы сервера в порядок. я давно для себя придумал структуру ответов и незнаю горя для ошибки { "status": "ERROR", "text": "Тут текст ошибки" } для данных структура всегда одна - data ВСЕГДА массив, ну а в элементах массива уже что хотите { "status": "OK", "data": [ { "id": 1, "name": "asdasd" } ] } есть такая штука (писалось для себя), ну и не боитесь использовать де/маршалинг1 балл -
TComboBox под Андроидом
DMS отреагировал Brovin Yaroslav за вопрос
Если используется режим DropDownKind = Native, то такой проблемы не должно быть. Выбор итема происходит в диалоговом окне с прокруткой.1 балл -
Для этого надо использовать сторонний лаунчер, реализующий т.н. kioskmode. Кнопку back можно переопределить, а вот остальные система не даст. Взможно, можно с помощью AccesibilityManager, точно не скажу1 балл
-
Ну правильно, если студия хочет при запуске открыть на чтение, то не запустится. Если не пересобирать (build) то все запустится. Библиотеки самого приложения и сервисов, если есть, перезапишутся точно. Иначе тогда не получалось бы делать обновление. На счет подключенных, сейчас не скажу, у нас в проектах используются сторонние so, надо будет посмотреть. Если в настройках сделать сброс, то развернутые из ассетов фалы удалятся, и при следующем запуске приложения, развернутся вновь. Так же потрет все, что приложение разместило по пути TPath.GetDocumentsPath. Если сделать сброс, то удалятся как раз те 2,07 мб, которые записал мне убер1 балл
-
На устройство попадает все, что указано в deployment. Но, при развертывании новой версии приложения, без разницы, через adb или маркет, эти файли не перезаписываются, только разворачиваются новые. Что вполне логично и являеися нормальным поведением системы. Винда даст запустить сколько угодно копий приложения, если это руками не ограничить. Из студии тоже получится, если не пересобирать заново. Если нужно обновить имеющиеся ресурсы, смотрите в сторону System. StartupCopy, он за это отвечает, ну или используйте AssetManager. Так же приложение можно не удалять полностью, а в настройках "стереть данные" перед запуском Но для работы с БД, лучше сразу продумать логику ее обновления в коде. Если данные в базе не важны для пользователя, то возможно, лучшим вариантом будет создавать БД программно. Если данные нужны, проверять версию БД и в коде ее обновлять. Откуда брать обновление-вам решать, или с сервера, или из ресурсов, или из assets выдергивать.1 балл
-
в чем сложность описанного метода? строим луч центр окружности - координаты мыши вариант а) находим пересечение этого луча с окружностью, по которой двигается контрол. вариант б) вычисляем угол, по нему находим ту же точку вариант б предпочтительнее, т.к. чаще всего нужно еще применять ограничения по углу1 балл
-
X := originX + cos(angle)*radius; Y := originY + sin(angle)*radius;1 балл
-
Асинхронный NetHTTPClient
Rusland отреагировал Кривяков Виталий за вопрос
Добрый день! Все проще, гораздо. Net := THTTPClient.Create; Net.BeginPost( procedure (const Value : IAsyncResult) begin AsyncResult(Value); // Вот тут можно вызвать любую процедуру, или просто обработать результат. end, URL, InputStream, OutputStream, Headers); В анонимной процедуре просто вызываете нужную процедуру, для интерактивной одну, для периодических запросов другую.1 балл -
Пример работы с потоками
Равиль Зарипов (ZuBy) отреагировал krapotkin за вопрос
это абсолютно аналогично тому, что показал Равиль. когда не хочется создавать класс-потомок TThread1 балл -
Нужен нормальный JSON парсер
Brovin Yaroslav отреагировал Равиль Зарипов (ZuBy) за вопрос
нуу, давайте так... массив - [], объект - {} или даже так1 балл -
Нужен нормальный JSON парсер
Brovin Yaroslav отреагировал Равиль Зарипов (ZuBy) за вопрос
правильно сработал, это не массив а объект. смотрите внимательно1 балл -
Failure retrieving resources
x11 отреагировал Равиль Зарипов (ZuBy) за вопрос
не парьтесь, скорее всего это связано с ресурсом из темы. но fmx морально устарел, он использует тему android holo0 баллов -
Использование нативных LocalBroadcastManager и BroadcastReceiver
Ingalime отреагировал Равиль Зарипов (ZuBy) за вопрос
емба сломала это еще в Берлине, в Токио не починили. Службы "нормально" работают только в Сиетле0 баллов