Tumaso

Пользователи
  • Публикаций

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

  • Посещение

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

    8

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

  1. У Эмбы есть описание подобной проблемы: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Migrating_Delphi_Code_to_Mobile_from_Desktop, раздел Use a Function Call in a try-except Block to Prevent Uncaught Hardware Exceptions условно говоря, код, который может вызвать аппаратное исключение, нужно вызывать из другой процедуры, и исключение ловить уже там. Это справедливо не только для iOS, но для андроида тоже. пример: procedure InternalG1; begin try // что то, приводящее к исключению except // здесь обработчик по факту игнорируется end; end; procedure G1; begin try InternalG1; except // здесь обработчик корректно обработает исключение end; end; А вообще у Grijjy team есть хорошая библиотека обработки необработанных исключений для андроида и иоса.
  2. Посмотри примеры мобильных приложений, идущих в комплекте со студией
  3. @Alex7wrt, устанавливают в том числе и новые пользователи на старых версиях андроида, и у них работает. minSdkVersion для этого. Что касается targetSDK, то этим значением приложение уведомляет операционку, что возможно будет использовать api вплоть до данной версии. targetSDK 27 пока не использовал, только 26, и все что надо работает. В самом коде делаю анализ текущей версии SDK, и в зависимости от нее возможно делаю дополнительные действия. Вот например, работа с правами: {$IFDEF ANDROID} // для Android 6+ требуется дополнительная работа с правами if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then begin if (TAndroidHelper.context.checkSelfPermission( StringToJString(PERMISSION_FILE_READ) ) = TJPackageManager.JavaClass.PERMISSION_DENIED) or (TAndroidHelper.context.checkSelfPermission( StringToJString(PERMISSION_FILE_WRITE) ) = TJPackageManager.JavaClass.PERMISSION_DENIED) then begin // необходимо запросить разрешение на использование галереи LIsWaitPermissions := True; TAndroidHelper.Activity.requestPermissions( CreateJavaStringArray([PERMISSION_FILE_READ, PERMISSION_FILE_WRITE]), BUTTON_FILE ); end; end; {$ENDIF}
  4. @Alex7wrt, конечно смогут. Минимально допустимая версия указывается в minSdkVersion. У меня например во всех приложениях установлено <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="26" />
  5. У делфи большой плюс - кроссплатформенность. У меня реально 90% единого кода для виндов, андроида и иоса. Специфичного для каждой платформы не так и много, по большому счету. Писать отдельно в андроид студии, отдельно в xcode, отдельно в делфи с VCL реально не очень хочется Заказчикам то пофиг, они хотят как минимум мобильные приложения сразу и для андроида и для иоса.
  6. Я к тому, что все больше заказчиков хотят в своих приложениях иметь карты со своими разнообразными элементами поверх карты. И реально уже непонятно, получим ли мы такой функционал в делфи, или нет. Одно дело подождать до конца года и получить наконец работающий z-order, или плюнуть и реально перейти на андроид студию.
  7. А кстати о карнавале. Там теперь можно поверх TMapView размещать делфовские компоненты?
  8. Ммм, может вы запустите свое приложение в режиме отладки и найдете место, инициирующее исключение?
  9. Не переживайте насчет затрат для разработки под iOS - яблочников можно отлично доить, так что всё окупится)
  10. Tumaso

    Download FGX Nativo

    Идеально, если FGX после выпуска беты будет продан Эмбе. Все таки у компании есть ресурсы для привлечения для работы над проектом N количества людей (от разрабов до маркетинга), а Ярославу может однажды банально всё надоесть. А это риски для пользователей. Ждем бету)
  11. Уважаемый, вы видимо забыли свой изначальный вопрос? Ответ вам дан. Дальше все в ваших руках))
  12. А что мешает использовать единый обработчик OnTap / OnClick для всех компонентов, которые не принимают фокус на форме?
  13. Я в токио использую TEdit.ResetFocus - фокус с edit убирается, событие OnExit срабатывает
  14. Tumaso

    Тестирование на ферме устройств

    Проведение тестирования нужно заказывать дополнительно, по умолчанию его нет
  15. Align не решает всех проблем с необходимым расположением контролов. В простых случаях - да, но только чуть сложнее логика размещения, и тут только программно)
  16. При запуске приложения определяете текущее разрешение, программно вычисляете размеры и положения компонент и программно применяете их. При OnResize у формы всё пересчитываете..
  17. Пользуюсь для отрисовки текста функцией Canvas.FillText. Но при выводе на канве текст получается немного размытым, особенно если сравнивать отображаемый текст с TLabel (тот же текст с теми же параметрами TFont у TLabel выглядит четче). Подскажите, как вывести текст без размытия?
  18. @ENERGY, я сделал вывод текста в tpaintbox, после чего копирую полученный битмап в TListView, искажения текста ушли. Почему прямое рисование искажает, я пока не понял - вроде все коэффициенты и размеры один к одному. Так что уже неактуально. А вот насчет рисования кругов со сглаживанием через nativeAPI, можно поподробнее? А то TCircle в андроиде это полный треш
  19. Я еще не тестировал приложения на Android 9, поэтому не готов подсказать
  20. Если бы не было этой проблемы, я бы ее и не спрашивал бы, как с ней бороться. Суть в том, что я использую TListView с динамической высотой элементов (высота может быть различной) и динамической формированием элементов. В качестве шрифта используется устанавливаемый с приложением шрифт (если быть точным - plumb). Изначально я формировал изображение, рисуя на Bitmap у ListView.ItemAppearance.Item.TImageObjectAppearance. В данной ситуации FillText при выводе теста, содержащего больше одной строки, приводил к формированию текста с небольшим искажением, но при этом текст в одну строку выводится без проблем. В качестве решения я использовал формирование в промежуточном буфере на базе TPaintBox, после чего копировал сформированное изображение в Bitmap. Искажения текста исчезли. Почему в исходном варианте наблюдается такое поведение FillText, я не знаю. Все scales, width / height и т.д. рассчитываются верно. Поэтому предлагаю лично вам свое мнение об этой проблеме и способах ее решения либо оставить при себе, либо озвучивать в другой теме. Желаете, что бы я начал комментировать ваши рассуждения об использовании FMX на этом форуме? )))))))))) Сразу отвечаю на замечание ENERGY - формируемые изображения кэшируются, ListView заполняется в коде очень быстро, и также шустро работает, скролится без лагов. Для пользователей программы это важно, по моему скромному мнению.
  21. Так я же уже решил проблему, путем построения промежуточного буфера в TPaintBox вместо TBitmap, теперь многострочный текст не искажается...
  22. Android SDK 25.2.5 AndroidManifest.template.xml: <uses-sdk android:minSdkVersion="18" android:targetSdkVersion="26" /> Phones: Samsung Galaxy S3, S4, S5, S6, S7, S8 Samsung Note 3, 4, 5
  23. ENERGY, копирую с помощью DrawBitmap DrawBitmap( ASource, AlignToPixel(ARect), AlignToPixel(TRectF.Create(0, 0, AWidth, AHeight)), 1, False );
  24. Alisson R Oliveira, required permissions for TakeImageFromLibrary: READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE. I use TakeImageFromLibrary only on android 5+, because on android 4.x application with TakeImageFromLibrary may crash any time. required permission for TakePhotoFromcamera and TCameraComponent: CAMERA