-
Постов
568 -
Зарегистрирован
-
Посещение
-
Победитель дней
57
Весь контент ENERGY
-
Имхо лучше взять 5s - будет возможность тестировать ПО на маленьких экранах и на минимальной айфон конфигурации. 5s это неплохой смарт, iOS 11 на нем не тормозит (а 12 тем более), поэтому людей на нем еще много.
-
Так пуш же сможет прийдти только если программа запущена. В остальных случаях ничего не прийдет. Вот есть 2 статьи как сделать правильный пуш http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html
-
Какой то странный у вас пуш, который совсем не пуш. А что будет, если сервер отправит пуш уведомление, а программа в этом время не будет запущена?
-
Никак, даже в нативном swift, при тапе на уведомление, сначала запускается\активируется программа, а затем уже оттуда нужно вызвать ссылку и закрыть\скрыть программу. Вы же для iOS пишите?
-
C AMD есть решения, но процессор должен поддерживать AMD-V. Но и с этим тоже будут проблемы, я пробовал запустить виртуалку заточенную под AMD на своем ПК, но не получилось, вываливались разные ошибки при запуске. Мне кажется даже если удастся все запустить, появятся очередные баги. Именно поэтому я так и написал - "не пойдет", это не категоричное нет. С Intel у меня все запустилось с первого раза. Насколько я понял, процессор тоже должен поддерживать виртуализацию.
-
Имхо тогда уже лучше купить обычный ноут под Win с Intel и на нем запустить виртуалку. Это более универсальное решение. Мне решение с виртуальной машиной больше нравится, т.к в VMWare удобно создавать образы всей системы. Особенно это актуально перед обновление системы или Xcode. Не работает после обновления? Пару кликов и ты вернулся к рабочей версии. Ну или MacMini, тоже бюджетное решение.
-
Вы используете это https://fmxlinux.com/ для Linux GUI?
-
Именно в Берлине я и проверял - под Windows и iOS - деструктор вызывается. Под остальными ОС не проверял, но думаю там тоже все ок. Что значит "перезаполняются"? @Равиль Зарипов (ZuBy)
-
Необходимый минимум - iPhone или iPad. iPhone нужен от 5s и выше. 5 уже не пойдет, т.к. 32 битный. 100$ - купить сертификат разработчика у Apple. MacOS можно запускать на виртуальной машине, готовые образы Vmware, с установленой системой, есть на рутрекере. Для работы нужен реальный процесор Intel, с AMD не пойдет. Настройка всего этого может занять пару дней, а то и больше.
-
Это неверно. Все TListViewItem корректно уничтожаются и освобождаются в Clear. Чтобы это проверить, достаточно поставить точку останова на TListItem.Destroy; А предложенный вами код это очень не оптимизированное и медленное решение, с перерассчетом всех индексов при каждом удалении айтема.
-
Может перенести эту тему в секцию форума Android? @Brovin Yaroslav
-
{$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;
-
Правильно. Фреймворк будет смотреть на значение в Scale - если оно будет около системного значения, то загрузит нужную картинку. Иногда, чтобы убедиться что картинка загружается, я раскрашиваю их в разные цвета. Offtop: Иногда я беру картинку с разрешением scale 3 и оставляю только одну картинку указывая Scale 1 (т.е. на деле у нее разрешение scale 3). TImage или TGlyph сделает авторесайз под размер компонента, но не всегда качественный авторесайз получается, нужно смотреть на результаты. Вообще (не только в Delphi), растровую картинку можно уменьшить почти без потери качества, а вот если ее увеличить - то тогда будет плохое качество - появятся растровые квадраты и картинка не будет выглядеть сглаженной. Поэтому не увеличивайте картинки малых разрешение, до более высокого.
-
Почему это не расположу? Кликаем правой кнопкой в Design Time по контролу, и выбираем Control > BringToFront. Также метод BringToFront и SendToBack есть в runtime у каждого контрола. Кнопка должна находится на форме (ее Parent).
-
У формы есть свойство Focused. MyControl := TControl(Focused.GetObject);
-
У формы есть событие OnVirtualKeyboardHidden, оно срабатывает когда юзер нажимает Done и клавиатура скрывается. Также, срабатывает событие OnExit компонента (напр TEdit).
-
А в новом пустом проекте также?
-
А какой Android у вас? С 6 и выше HTTPS не работает в Indy. Нужно использовать THttpClient
-
Все переменные в пост https запросе шифруются, ничего делать не надо. Уже много раз обсуждали, что лучше использовать THttpClient ,вместо Indy компонентов. Т..к. https не работает на Android 6 и выше с Indy. И в целом он более стабильный чем Indy.
-
Может кому то пригодится. Победить 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, т.к. я заметил баг с системным тулбаром он не перекрашивается, в зависимости от цвета текущей формы..
-
Да это в стилях убирается. Через SpeedButton даже проще, согласен..
-
Native Api (google translate ) : https://github.com/OneChen/FMXNativeDraw (там же ссылка на описаниеl) Равиль сделал на основе этого модуля готовые компоненты: https://github.com/rzaripov1990/ZMaterialComponents
-
Проблема в том что ваш битмап растягивается ,т.к. у него не правильный масштаб (масштаб 1, а нужен системный который больше). Значит 1. Получите текущий Scale из системы (если отнаследовались от TControl, то есть Scene.GetSceneScale). 2. Установите правильный размер у битмапа - Bitmap.SetSize(Ceil(Width * Scale), Ceil(Height * Scale)) Вместо Ceil можно Trunc попробовать, что лучше. BitmapScale не трогайте (его нужно менять, если рисуете векторный Path ). Теперь попробуйте вывести на него текст, а затем этот битпам отобразить на PaintBox. Должно все получиться с высокой вероятность, я так отрисовываю примитивы, напр. круг через китайский модуль NativeAPI, чтобы было сглаживание на Android/iOS.
-
В этом варианте при нажатии будет появляться сервый прямоугольник. Не идет. Вариант Равиля медленный, кнопка будет часто перерисовыватся, круг + картинка + тень. Поэтому лучший вариант это сделать кнопку в виде обычной картинки. 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 - это еще проще и меньше кода, чем выше.