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

ENERGY

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

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

  • Посещение

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

    57

Сообщения, опубликованные ENERGY

  1. TImageViewer умеет делать scale и Scroll. Колесом мышки можно увеличивать\уменьшать картинку, и скролить.

    Очень странно что такой возможности нет для моб. платформ. А именно изменять размер картинки двумя пальцами.

    Даже не знаю с чего начать. Я что-то думал что это уже готовый компонент, нафиг он нужен тогда..

     

  2. @tromani

    Я имел ввиду без устройства iPhone - можно на симуляторе iOS. Но лучше где то взять реальный телефон или iPad.

    Конечно нужен MacOS (OSX). Вся инфраструктура iOS программирования зависима от OSX и делается только через макос, независимо от языка.

    Вы его можете поставить на VMWare (нужно его еще пропатчить, для macOS) - готовый образ vmware можно скачать на рутрекере. Там и все инструкции. Но для его запуска вам нужен Intel процессор, хотя там есть варианты и с AMD, но с ним больше проблем на маке.

    Потом можно подключить реальный iPhone и он определиться в виртуалке.

     

  3. По поводу удаления из Gallery. Это виртуальная папка, это значит что недостаточно удалить файл из SharedCameraPath - т.к. он может быть в другом месте, т.к. MediaScanner собирает фотки со многих других папок,  но обычно достаточно этого пути.

    Но, даже если его удалить оттуда, он все равно останется в Gallery - его нужно удалять из SQL базы андроида.

     

    В общем идея следующая (описана тут) - до вызова интента сначала прочитать последний Image ID (ContentResolver.Query ) который лежит там, сохранить эту цифру.

    Затем после вызова интента камеры, запросить все id что больше сохраненного, как правило там должен появится один файл (одна запись с ID больше сохраненного) - и удалить его через ContentResolver.Delete. Параллельно можно сразу скопировать этот готовый jpeg файл, до удаления, чтобы не тратить время на создание своего из битмапа, т.к. можно получит и путь к нему.

     

     

  4. {$IFDEF ANDROID}
      procedure KeepScreenOn(aEnable: boolean);
      var
        vFlags: integer;
      begin
        vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON;
    
        if aEnable then
        begin
          CallInUIThread (   // uses FMX.Helpers.Android
          procedure
          begin
            TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags);
          end );
        end
        else
          CallInUIThread (
          procedure
          begin
            TAndroidHelper.Activity.getWindow.clearFlags (vFlags);
          end );
      end;
      {$ENDIF}

    Это для Berlin и ниже.

    При использовании Tokyo - вызов CallInUIThread не нужен, можно вызывать напрямую, т.к. теперь главный Delphi поток это Java  UIThread.

     

    iOS

    uses
      iOSapi.UIKit;
    
    {$R *.fmx}
    
    procedure TForm6.Button1Click(Sender: TObject);
    var
      UIApp : UIApplication;
    begin
      UIApp := TUIApplication.Wrap(TUIApplication.OCClass.sharedApplication);
      UIApp.setIdleTimerDisabled(True);
    end;
  5. OnResize .

    Но проверяйте что уже установили нужные размеры контролов\картинок, т.к. OnResize может выполняться многократно (если у первого компонента уже стоит нужная ширина then exit).

  6. Просьба проголосовать за эти баги. В одном из вопросов, вас ждет бонус (оптимизированный компонент, в 4-6 раз быстрее).

    https://quality.embarcadero.com/browse/RSP-12494

    https://quality.embarcadero.com/browse/RSP-10592

    https://quality.embarcadero.com/browse/RSP-15868

     

    Еще одна альтернатива, которая работает гораздо быстрее на Android - Winsoft aCamera компонент.

    Правда он стоит 80$, которых у меня сейчас нет. Но триал в Delphi примере работает классно. У кого есть деньги, наверное это оптимальный вариант.

     

    Может у кого то есть еще варианты?

  7.  

    Цитата

    @rustam_d

    1. Установка делфи БЕЗ галочек дроида (профи все так делают). СДК и НДК надо качать отдельно по уму...

     

     

    Наоборот, профи советуют ставить рекомендуемые, протестированные версии SDK, те что идут по умолчанию с пакетом.

    Note: You need to use the recommended versions of the Android development tools. RAD Studio might not support changes that alternative versions introduce.  

    http://docwiki.embarcadero.com/RADStudio/Seattle/en/Installing_the_Android_Development_Tools

    Хотите случайных багов, - все в ваших руках.

     

    50 минут назад, tromani сказал:

    а както можно без наличия устройства iOS, вот это было б полезная статья если кто поделится опытом буду признателен

    Можно и без устройства, на симуляторе.

    Все руководства уже расписаны: http://docwiki.embarcadero.com/RADStudio/Berlin/en/Mobile_Tutorial:_Set_Up_Your_Development_Environment_on_the_Mac_(iOS)

     

     

     

  8. 1. Обновите Xcode до последней версии.

    2. PAserver - c аргументом v (verbose)

    3. У Embarcaderos iOS есть демка "Location". Там указаны Version Info, попробуйте сначала ее запустить, и если все ок, то вставить в свой проект  Project --> Project Options --> Version Info то что у этой демки. 

  9. Цитата

    Они что, правда сделали компилятор под unix исходников на паскале?

    Что вас так удивляет?

    MacOS (OSX), Android и iOS - это тоже Unix.  

     

    Цитата

    Насколько мне известно, модули для apache до сих пор собирали и устанавливали с помощью apxs / apxs2, apxs в свою очередь работает с исходниками на Си, объектными файлами *.o и статическими библиотеками *.a. И как все это хозяйство привязали к паскалю?

    Что-то не пойму причем здесь Apache к Delphi? И зачем его привязывать? Начиная с Tokyo Delphi поддерживает компиляцию под Linux, но результат без гуи, пока только через консоль, - это подходит для серверных и IOT решений, FireMonekey добавят позже.

    Вот эта ссылка будет поинтереснее http://docwiki.embarcadero.com/RADStudio/Tokyo/en/What's_New

    P.s. Вот плохо что @Brovin Yaroslav закрывает темы без причины. В этой теме я бы пообщался, а новости от Embarcadero я итак на почту получаю, как и многие другие.

     

  10. В JCL встречал подобное - ProcByLevel в JclDebug .

    Но без Debug info это не узнаешь. А как это будет работать на других компиляторах тоже неизвестно.

    Если вам не нужно получать весь стэк, то конечно лучше передавать или константой имя процедуры или через тип.

    Также это почитайте http://eurekalog.blogspot.com/2010/05/new-exception-class-in-delphi-2009-and_05.html

    Upd 

    Я что-то подумал что вам нужно логгер сделать, по типу MadExcept, все оказалось проще.

  11. Здесь  решение. Не достаточно указать UIBackgroundModes, нужно еще проделать кое-какие манипуляции и установит интервал как часто просыпаться (по умолчанию = никогда).

    Там же есть ссылка на другую статью, как раз связано с получением локации. Здесь официальный мануал.

    Демо BackgroundFetchDemo.zip прикрепил.

    BackgroundFetchDemo.zip

     

    Все решает система, возможно система включит программу через установленный ею интервал, возможно через час, и позже. Всего дается 30 секунд.

  12. Tools/Options/SDK Manager и удалите фрэймворк UIFoundation из всех конфигов iPhoneOS.

    Apple удалили этот фреймворк начиная с iOS 9.3, а Platform Assistant не может получить ассоциированные файлы. источник

     

  13. Тут один известный человек с форума Embarcadero написал что это возможно из за использования VmWare.

    Кто нибудь нибудь использует VMWare + MacOS? У вас билд для IOS проходит в Debug конфиге?

  14. 11 минут назад, chaplin.u@gmail.com сказал:

    Ресурсы как написано в доках iOS не поддерживаются так что делать ?

    Где это такое написано?

    https://community.embarcadero.com/article/articles-tutorials/151-ui/927-deploying-and-accessing-local-files-on-ios-and-android

  15.  

    Цитата

     

    Если строки в языковых файлах - зачем RTTI?

    Почему бы Embarcadero не работать сразу с unicode, стандартно UTF-8(16)? 

     

    Причем здесь юникод к RTTI? RTTI это низкоуровневый доступ к полям класса. К любым типам.

    Сохраняйте строки в отдельном текстовом файле в Utf-8 и забрасывайте их в компоненты при помощи RTTI. http://delphi.chertenok.ru/text/stat21.shtml

    Цитата

    RAD Studio работает с исходниками на Ansi, а компилятор не распознает кириллицу в этих исходных файлах, приведение:

    Полная  ерунда. Хоть на китайском можно писать. Сохраняйте .pas в utf-8 - правая кнопка мыши по редактору > File Format > Utf-8.

  16. У меня появляется ошибка когда пытаюсь сделать билд пустого проекта iOS на Debug конфиге.

    E2597 dsymlink: Error: failed to set locale to ??1I? на Debug Config. Да именно с такими символами ??1I?.

    При этом, я могу сделать билд и запустить тот же проект на реальном iPhone без ошибок, но если выберу Release Config
    Xcode, 8.2.1, iPhone 5, iOS 10.2, Delphi Berlin update 2 + Hotfix , Windows 10 English, на iPhone тоже English, MacOS на VMWare тоже English, но до этого был на русском. 

    Также могу сделать Debug билд и запустить на симуляторе iOS.
     

    Спойлер

    Target _PasCoreCompile:
    c:\program files (x86)\embarcadero\studio\18.0\bin\dcciosarm.exe -$O- --no-config -M -Q -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG -E.\iOSDevice32\Debug -I"c:\program files (x86)\embarcadero\studio\18.0\lib\iOSDevice32\debug";"c:\program files (x86)\embarcadero\studio\18.0\lib\iOSDevice32\Release" -LEC:\Users\Public\Documents\Embarcadero\Studio\18.0\Bpl\iOSDevice32 -LNC:\Users\Public\Documents\Embarcadero\Studio\18.0\Dcp\iOSDevice32 -NU.\iOSDevice32\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files (x86)\embarcadero\studio\18.0\lib\iOSDevice32\Release" -R"c:\program files (x86)\embarcadero\studio\18.0\lib\iOSDevice32\Release" -U"c:\program files (x86)\embarcadero\studio\18.0\lib\iOSDevice32\debug";"c:\program files (x86)\embarcadero\studio\18.0\lib\iOSDevice32\Release" --syslibroot:C:\Users\Alex\Documents\Embarcadero\Studio\SDKs\iPhoneOS10.2.sdk --frameworkpath:C:\Users\Alex\Documents\Embarcadero\Studio\SDKs\iPhoneOS10.2.sdk\System\Library\Frameworks -V -VN --linker-option:"-arch armv7" -NO.\iOSDevice32\Debug Project1.dpr 
    MSBUILD : error E2597: E2597 dsymlink: Error: failed to set locale to ??1I?
    c:\program files (x86)\embarcadero\studio\18.0\Bin\CodeGear.Delphi.Targets(405,5): error F2588: F2588 Linker error code: 1 ($00000001)
    Done building target "_PasCoreCompile" in project "Project1.dproj" -- FAILED.
    Done building project "Project1.dproj" -- FAILED.
    Build FAILED.
    MSBUILD : error E2597: E2597 dsymlink: Error: failed to set locale to ??1I?
    c:\program files (x86)\embarcadero\studio\18.0\Bin\CodeGear.Delphi.Targets(405,5): error F2588: F2588 Linker error code: 1 ($00000001)

     

    Подскажите куда копать. 

    Тема на форуме Emb 

×
×
  • Создать...