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

ENERGY

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

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

  • Посещение

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

    57

Весь контент ENERGY

  1. Имхо лучше взять 5s - будет возможность тестировать ПО на маленьких экранах и на минимальной айфон конфигурации. 5s это неплохой смарт, iOS 11 на нем не тормозит (а 12 тем более), поэтому людей на нем еще много.
  2. Так пуш же сможет прийдти только если программа запущена. В остальных случаях ничего не прийдет. Вот есть 2 статьи как сделать правильный пуш http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html
  3. Какой то странный у вас пуш, который совсем не пуш. А что будет, если сервер отправит пуш уведомление, а программа в этом время не будет запущена?
  4. Никак, даже в нативном swift, при тапе на уведомление, сначала запускается\активируется программа, а затем уже оттуда нужно вызвать ссылку и закрыть\скрыть программу. Вы же для iOS пишите?
  5. C AMD есть решения, но процессор должен поддерживать AMD-V. Но и с этим тоже будут проблемы, я пробовал запустить виртуалку заточенную под AMD на своем ПК, но не получилось, вываливались разные ошибки при запуске. Мне кажется даже если удастся все запустить, появятся очередные баги. Именно поэтому я так и написал - "не пойдет", это не категоричное нет. С Intel у меня все запустилось с первого раза. Насколько я понял, процессор тоже должен поддерживать виртуализацию.
  6. Имхо тогда уже лучше купить обычный ноут под Win с Intel и на нем запустить виртуалку. Это более универсальное решение. Мне решение с виртуальной машиной больше нравится, т.к в VMWare удобно создавать образы всей системы. Особенно это актуально перед обновление системы или Xcode. Не работает после обновления? Пару кликов и ты вернулся к рабочей версии. Ну или MacMini, тоже бюджетное решение.
  7. Вы используете это https://fmxlinux.com/ для Linux GUI?
  8. Именно в Берлине я и проверял - под Windows и iOS - деструктор вызывается. Под остальными ОС не проверял, но думаю там тоже все ок. Что значит "перезаполняются"? @Равиль Зарипов (ZuBy)
  9. Необходимый минимум - iPhone или iPad. iPhone нужен от 5s и выше. 5 уже не пойдет, т.к. 32 битный. 100$ - купить сертификат разработчика у Apple. MacOS можно запускать на виртуальной машине, готовые образы Vmware, с установленой системой, есть на рутрекере. Для работы нужен реальный процесор Intel, с AMD не пойдет. Настройка всего этого может занять пару дней, а то и больше.
  10. Это неверно. Все TListViewItem корректно уничтожаются и освобождаются в Clear. Чтобы это проверить, достаточно поставить точку останова на TListItem.Destroy; А предложенный вами код это очень не оптимизированное и медленное решение, с перерассчетом всех индексов при каждом удалении айтема.
  11. Может перенести эту тему в секцию форума Android? @Brovin Yaroslav
  12. {$IFDEF ANDROID} Uses Androidapi.JNI.GraphicsContentViewText, Androidapi.Helpers, Androidapi.JNI.JavaTypes, Androidapi.JNI.Net; {$ENDIF} procedure btnPdfClick(Sender: TObject); var lName : String; {$IFDEF ANDROID} Intent : JIntent; URI : Jnet_Uri; {$ENDIF} begin lName := TPath.GetSharedDownloadsPath + PathDelim + 'test.pdf'; {$IFDEF ANDROID} URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + lName)); intent := TJIntent.Create; intent.setAction(TJIntent.JavaClass.ACTION_VIEW); intent.setDataAndType(URI,StringToJString('application/pdf')); SharedActivity.startActivity(intent); {$ENDIF} end;
  13. Правильно. Фреймворк будет смотреть на значение в Scale - если оно будет около системного значения, то загрузит нужную картинку. Иногда, чтобы убедиться что картинка загружается, я раскрашиваю их в разные цвета. Offtop: Иногда я беру картинку с разрешением scale 3 и оставляю только одну картинку указывая Scale 1 (т.е. на деле у нее разрешение scale 3). TImage или TGlyph сделает авторесайз под размер компонента, но не всегда качественный авторесайз получается, нужно смотреть на результаты. Вообще (не только в Delphi), растровую картинку можно уменьшить почти без потери качества, а вот если ее увеличить - то тогда будет плохое качество - появятся растровые квадраты и картинка не будет выглядеть сглаженной. Поэтому не увеличивайте картинки малых разрешение, до более высокого.
  14. Почему это не расположу? Кликаем правой кнопкой в Design Time по контролу, и выбираем Control > BringToFront. Также метод BringToFront и SendToBack есть в runtime у каждого контрола. Кнопка должна находится на форме (ее Parent).
  15. У формы есть свойство Focused. MyControl := TControl(Focused.GetObject);
  16. У формы есть событие OnVirtualKeyboardHidden, оно срабатывает когда юзер нажимает Done и клавиатура скрывается. Также, срабатывает событие OnExit компонента (напр TEdit).
  17. ENERGY

    Шифрование данных

    А какой Android у вас? С 6 и выше HTTPS не работает в Indy. Нужно использовать THttpClient
  18. ENERGY

    Шифрование данных

    Все переменные в пост https запросе шифруются, ничего делать не надо. Уже много раз обсуждали, что лучше использовать THttpClient ,вместо Indy компонентов. Т..к. https не работает на Android 6 и выше с Indy. И в целом он более стабильный чем Indy.
  19. Может кому то пригодится. Победить Linker Error 1 просто. И iOS SDK 11 и больше прекрасно компилиться и работает на Берлине. В логах ошибки пишет что ld: file not found: /System/Library/Frameworks/FileProvider.framework/FileProvider for architecture arm64 Значит нужно добавить его в SDK Tools -> Options -> SDK Manager - выбираем свой SDK и добавляем по аналогии с уже имеюищимися путями: Add: $(SDKROOT)/System/Library/Frameworks FrameworkName: FileProvider Далее ОК и обновляем кэш (Update Local File Cache). Сделайте Clean проекту на всякий случай, и та дам, все компилиться под Берлином и запускается на айфоне с IOS 11+ 64bit. Upd - но лучше поставить поставить последнюю версию Delphi, т.к. я заметил баг с системным тулбаром он не перекрашивается, в зависимости от цвета текущей формы..
  20. Да это в стилях убирается. Через SpeedButton даже проще, согласен..
  21. Native Api (google translate ) : https://github.com/OneChen/FMXNativeDraw (там же ссылка на описаниеl) Равиль сделал на основе этого модуля готовые компоненты: https://github.com/rzaripov1990/ZMaterialComponents
  22. Проблема в том что ваш битмап растягивается ,т.к. у него не правильный масштаб (масштаб 1, а нужен системный который больше). Значит 1. Получите текущий Scale из системы (если отнаследовались от TControl, то есть Scene.GetSceneScale). 2. Установите правильный размер у битмапа - Bitmap.SetSize(Ceil(Width * Scale), Ceil(Height * Scale)) Вместо Ceil можно Trunc попробовать, что лучше. BitmapScale не трогайте (его нужно менять, если рисуете векторный Path ). Теперь попробуйте вывести на него текст, а затем этот битпам отобразить на PaintBox. Должно все получиться с высокой вероятность, я так отрисовываю примитивы, напр. круг через китайский модуль NativeAPI, чтобы было сглаживание на Android/iOS.
  23. В этом варианте при нажатии будет появляться сервый прямоугольник. Не идет. Вариант Равиля медленный, кнопка будет часто перерисовыватся, круг + картинка + тень. Поэтому лучший вариант это сделать кнопку в виде обычной картинки. TImage или TGlyph. Я делал на TGlyph чтобы все картинки были в ImageList. Подготовьте 3 пнг картинки с полностью готовой кнопкой, с тремя масштабами. Scale 1 = 56x56 Scale 2 = 112x112 Scale 3 = 168x168 Поместите его в TImageList (обычно в глобальном Datamodule), добавьте свое изображение в список и добавьте 3 коэффициента масштабирования в исходное изображение (дважды щелкните элемент в списке «Sources of Image» в ImageList, там выберите "Add new Item"), в итоге одно изображение в TImageList будет иметь 3 scale. Чтобы понять какой scale загрузился при тесте, можно поставить для теста картинки разного цвета. Поместите TGlyph на форму и выберите свой список изображений. Установите событие OnClick в Form OnCreate (поскольку Glyph1 не имеет OnClick по умолчанию в Object Inspector): Glyph1.OnClick := Click; Glyph1.HitTest := true; В OnClick добавьте этот код для анимации: procedure TForm2.TestClick(Sender: TObject); begin TAnimator.AnimateFloatWait(Glyph1, 'Opacity', 0.5, 0.2); TAnimator.AnimateFloat(Glyph1, 'Opacity', 1, 0.2); end; Или вы можете использовать TImage - это еще проще и меньше кода, чем выше.
×
×
  • Создать...