Перейти к содержанию
Fire Monkey от А до Я

Alex7wrt

Пользователи
  • Постов

    508
  • Зарегистрирован

  • Посещение

  • Победитель дней

    31

Активность репутации

  1. Like
    Alex7wrt получил реакцию от Alexey Belyaev в Портетная и альбомная ориентация - как лучше сделать разный дизайн?   
    В событии OnResize формы проверять width > height и для каждого из двух вариантов переприсваивать позиции и размеры тех контролов, которые должны меняться.
     
  2. Like
    Alex7wrt получил реакцию от Ingalime в [Статья][AdMob] Добавляем рекламный блок в приложение   
    http://www.tahribat.com/forum/android---delphi-xe7-firemonkey-admob-interstitial-204528
  3. Like
    Alex7wrt получил реакцию от Barbanel в 9-Patch PNG FMX Generator   
    Сделал небольшую программу-генератор 9-patch заставок. 
    Достаточно выбрать цвет фона, логотип и его видимый размер, и программа сгенерирует 9-patch для всех необходимых  в FMX размеров.

    Примеры
    Рисунок:

    Полученные 9-Patch png:

    Рисунок:

    Полученные 9-Patch png:

     
    Исходники: 9Patch Generator.zip
     
  4. Like
    Alex7wrt получил реакцию от Ingalime в 9-Patch PNG FMX Generator   
    Сделал небольшую программу-генератор 9-patch заставок. 
    Достаточно выбрать цвет фона, логотип и его видимый размер, и программа сгенерирует 9-patch для всех необходимых  в FMX размеров.

    Примеры
    Рисунок:

    Полученные 9-Patch png:

    Рисунок:

    Полученные 9-Patch png:

     
    Исходники: 9Patch Generator.zip
     
  5. Like
    Alex7wrt получил реакцию от Евгений Корепов в Выполнение операции после скрытия меню   
    TForm.Invalidate
  6. Like
    Alex7wrt получил реакцию от Станислав Матушевский в 9-Patch PNG FMX Generator   
    Сделал небольшую программу-генератор 9-patch заставок. 
    Достаточно выбрать цвет фона, логотип и его видимый размер, и программа сгенерирует 9-patch для всех необходимых  в FMX размеров.

    Примеры
    Рисунок:

    Полученные 9-Patch png:

    Рисунок:

    Полученные 9-Patch png:

     
    Исходники: 9Patch Generator.zip
     
  7. Like
    Alex7wrt получил реакцию от Ingalime в Приложение не реагирует на любые действия   
    Google USB Driver входит в состав Android SDK. Кроме него вам ничего не нужно.
    При подключении по USB достаточно, чтобы телефон был в режиме "Зарядка".
  8. Like
    Alex7wrt получил реакцию от Barbanel в android:minSdkVersion после 1 августа   
    Манифест нужно редактировать только в одном месте - в файле AndroidManifest.template.xml, который лежит непосредственно в папке вашего проекта
    На основе этого файла генерируется файл манифеста, который добавляется к приложению.
  9. Like
    Alex7wrt получил реакцию от Barbanel в android:minSdkVersion после 1 августа   
    Так как с 1 августа Google требует указывать targetSdkVersion 28 и выше, то логично будет использовать 28-ю версию.29-я это Android 10, который еще не вышел официально. Думаю, проблем с ней не должно быть, но я бы повременил с ее использованием.
    Обратите внимание, что использование все более новых targetSdkVersion может приводить к некоторым ограничениям, которые вводит Google в новых версиях андроида.
    Например, при переходе на targetSdkVersion 28 вы обнаружите, что ссылки, начинающиеся на "http" считаются небезопасными и по умолчанию не обрабатываются. Рекомендуется повсеместно переходить на "https".
    Так что, если вы в каком-нибудь THTTPClient или где-либо еще выполняли запрос на "http", а после перехода на targetSdkVersion 28 обнаружили, что ваш код перестал работать, то либо переходите на "https", либо, если все же необходимо выполнять запрос на "http",  внесите изменения в файле манифеста: в разделе application нужно добавить строку android:usesCleartextTraffic="true".
     
  10. Like
    Alex7wrt получил реакцию от Barbanel в android:minSdkVersion после 1 августа   
    Название SDK Version в FMX остается таким каким было при первой установке и не меняется при обновлении Android SDK. Если вы исправно обновляете Android SDK, то в SDK менеджере вы можете указать последние версии  ZipAlign Location и Aapt Location, в частности 28.
  11. Like
    Alex7wrt получил реакцию от Barbanel в android:minSdkVersion после 1 августа   
    В справке Google говорится исключительно о targetSdkVersion, а не о minSdkVersion. И targetSdkVersion="26" - это условие для прошлого года. В этом году нужно писать targetSdkVersion="28" 
  12. Thanks
    Alex7wrt получил реакцию от Ingalime в android:minSdkVersion после 1 августа   
    Манифест нужно редактировать только в одном месте - в файле AndroidManifest.template.xml, который лежит непосредственно в папке вашего проекта
    На основе этого файла генерируется файл манифеста, который добавляется к приложению.
  13. Like
    Alex7wrt отреагировална Ingalime в android:minSdkVersion после 1 августа   
    Большое спасибо!!! Теперь понятно.
    P.S.
    На эмуляторе программа "Hello word!" отработала при 28 версии, а zipalign.exe и aapt.exe = 29
     
  14. Thanks
    Alex7wrt получил реакцию от Ingalime в android:minSdkVersion после 1 августа   
    Должно работать, но я бы везде использовал 28-ю версию, включая  zipalign.exe и aapt.exe.
  15. Thanks
    Alex7wrt получил реакцию от Ingalime в android:minSdkVersion после 1 августа   
    Так как с 1 августа Google требует указывать targetSdkVersion 28 и выше, то логично будет использовать 28-ю версию.29-я это Android 10, который еще не вышел официально. Думаю, проблем с ней не должно быть, но я бы повременил с ее использованием.
    Обратите внимание, что использование все более новых targetSdkVersion может приводить к некоторым ограничениям, которые вводит Google в новых версиях андроида.
    Например, при переходе на targetSdkVersion 28 вы обнаружите, что ссылки, начинающиеся на "http" считаются небезопасными и по умолчанию не обрабатываются. Рекомендуется повсеместно переходить на "https".
    Так что, если вы в каком-нибудь THTTPClient или где-либо еще выполняли запрос на "http", а после перехода на targetSdkVersion 28 обнаружили, что ваш код перестал работать, то либо переходите на "https", либо, если все же необходимо выполнять запрос на "http",  внесите изменения в файле манифеста: в разделе application нужно добавить строку android:usesCleartextTraffic="true".
     
  16. Thanks
    Alex7wrt получил реакцию от Ingalime в android:minSdkVersion после 1 августа   
    Название SDK Version в FMX остается таким каким было при первой установке и не меняется при обновлении Android SDK. Если вы исправно обновляете Android SDK, то в SDK менеджере вы можете указать последние версии  ZipAlign Location и Aapt Location, в частности 28.
  17. Like
    Alex7wrt получил реакцию от qz5 в android:minSdkVersion после 1 августа   
    В справке Google говорится исключительно о targetSdkVersion, а не о minSdkVersion. И targetSdkVersion="26" - это условие для прошлого года. В этом году нужно писать targetSdkVersion="28" 
  18. Thanks
    Alex7wrt получил реакцию от Ingalime в android:minSdkVersion после 1 августа   
    В справке Google говорится исключительно о targetSdkVersion, а не о minSdkVersion. И targetSdkVersion="26" - это условие для прошлого года. В этом году нужно писать targetSdkVersion="28" 
  19. Like
    Alex7wrt отреагировална krapotkin в Фреймворк для стандартного ListView   
    Всем привет!
    После долгого творческого запоя я запилил альфу либы, которая позволяет юзать обычный, не-генномодифицированный ListView.
    Данные подаются в виде модели данных, описание раскладки итема лежит в JSON.

    Для работы пишется примитивный наследник класса-адаптера, который биндит данные модели на элементы из JSON. Я решил, что руками делать это дешевле чем через RTTI
    { TMyAdapter } procedure TMyAdapter.SetupDrawableContent(const ADrawable: TListItemDrawable; const AData: TMyData); begin if SameText( ADrawable.Name, 'text') then begin (ADrawable as TListItemText).Text := AData.Text; end else if SameText( ADrawable.Name, 'detail') then begin (ADrawable as TListItemText).Text := AData.Detail; end else if SameText( ADrawable.Name, 'balance') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Balance); end else if SameText( ADrawable.Name, 'reserved') then begin (ADrawable as TListItemText).Text := FormatFloat('0.00', AData.Reserved); end end; Главная хитрость и отличие от стандартного DynamicAppearance+LiveBinding - переменная высота итемов ListView и использование арифметики в описании раскладки.
    Можно указать Detail.Y  = Text.Bottom + 5, ItemHeight = Detail.Bottom + 10, Detail.W = ItemWidth/2 - X
    {"Kind":"rect","Name":"BonusRect","Value":"", "Place":{"X":"itemwidth*3/4","Y":"Text.Y","W":"ItemWidth/4-5","H":"50"}, "BorderColor":"#FF005500", "Color":"lime", "LineWidth":3}, {"TextHAlign":2,"TextVAlign":1,"Kind":"text","Name":"Balance","Value":"", "Place":{"X":"BonusRect.x+5","Y":"Text.Y","W":"BonusRect.w-10","H":"50"}, "WordWrap":true, "Color" :"Black", "Font":{"Size":18,"Style":""}} ], "ItemHeight":"detail.bottom+10", Это дает довольно гибкую систему. Не на все случаи жизни, но все, что нужно, можно после автоматической раскладки дополнительно приписать в OnUpdateObjects 
    Код для работы примерно такой
    procedure TForm1.FormCreate(Sender: TObject); begin data:= TMyDataList.CreateFromFile(ExePath()+'data.json'); // загрузка в модель данных Adapter := TMyAdapter.Create(lvWallets, data.Items, ExePath()+'pattern.json'); // создание адаптера и загрузка шаблона Adapter.Pattern.SetupListView(lvWallets); // задать отступы и разную мелочь Adapter.ResetView(); // здесь в цикле из модели данных создается нужное количество итемов ListView end; procedure TForm1.lvWalletsUpdatingObjects(const Sender: TObject; const AItem: TListViewItem; var AHandled: Boolean); begin Adapter.SetupContent(AItem); // загрузить текст, картинки и другое содержимое в элементы итема Adapter.Pattern.DoLayout(AItem); // поправить раскладку в соответствии с содержимым элементов итема end; Для использования кроме стандартных - текст, картинка, кнопка - создано несколько дополнительных элементов итема - прямоугольник, круг, уголок, линия.
    Отличие от ModernLV - , 
    1) все происходит без правки системных файлов
    2) пока нет колонок и других особых изысков.
    На результат работы смотреть тут. Исходники пока не причесаны, будут чуть позже
    UPD.
    ссылки на репозитории ниже
     
  20. Like
    Alex7wrt отреагировална Евгений Корепов в Подключение Admob к iOS   
    Я еще тупее чем думал. После нажатия "Update Local File Cache" все фреймворки подсосались сами с Mac mini ))))))))))))))
  21. Like
    Alex7wrt получил реакцию от Anatoliy в Подключение Admob к iOS   
    Получилось, но только с подключением дополнительных фреймворков. Использовал JVEsuite.
  22. Like
    Alex7wrt получил реакцию от Евгений Корепов в Подключение Admob к iOS   
    Получилось, но только с подключением дополнительных фреймворков. Использовал JVEsuite.
  23. Like
    Alex7wrt получил реакцию от MrAnderson в Что невозможно сделать на Delphi для Android?   
    Первый раз слышу о проблемах с TThread.Synchronize.
     
  24. Like
    Alex7wrt получил реакцию от Ingalime в Delphi Seattle и Google Play 2019   
    Написанию 64-битных приложений не удовлетворяет ни одна версия Rad Studio, включая и ту, которая еще не вышла (10.3). В планах Embarcadero добавить поддержку 64 бит под Android позже в 19-м году.
    Думаю, механизм внедрения этой фичи будет такой же, как сейчас с TargetSDK. То есть старые приложения, уже размещенные в маркете, никто трогать не будет, но обновления и новые приложения  уже нельзя будет выпускать только в 32-битном исполнении.
  25. Thanks
    Alex7wrt получил реакцию от Morev в Delphi Seattle и Google Play 2019   
    Написанию 64-битных приложений не удовлетворяет ни одна версия Rad Studio, включая и ту, которая еще не вышла (10.3). В планах Embarcadero добавить поддержку 64 бит под Android позже в 19-м году.
    Думаю, механизм внедрения этой фичи будет такой же, как сейчас с TargetSDK. То есть старые приложения, уже размещенные в маркете, никто трогать не будет, но обновления и новые приложения  уже нельзя будет выпускать только в 32-битном исполнении.
×
×
  • Создать...