Перейти к содержанию

juppy

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

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

  • Посещение

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

    7

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


  1. Аааа. Блин!...

    За Тостами к Ярославу, который их продает для новых версий.  

    Который подсадил ваше приложение бесплатной версией, но если хотите не отставать от изменений xCode-а и прочего стафа для публикации своих приложений для современных платформ - раскошеливайтесь!

    Ярослав опытный программист! Есть возможность зарабатывать - я только за!

    Но кто за это вообще платит деньги?! Вокруг уже давно все это бесплатно.

    Я не понимаю коммерческой привлекательности Delphi.

    В мобильной разработке - это динозавр со своими растровыми и замороченными стилями, у которого нет элементарного инструмента такого как отладчик! (для IOS 64 под MAC OS Catalina и выше)

    Попробуйте отладить приложение без отладчика... Звучит как каламбур. 

    А история с AAB!

    Это же просто ни в какие ворота, что разработчики инструктируют своих клиентов, которые заплатили деньги, как попросить Google принять их приложение с обещанием предоставить AAB как только появится возможность! 

    А поддержка 64 бит IOS!?... Ждали до последнего пока Apple не прекратил поддержку  32 бит устройств.

    Попробуйте предоставить в AppStore скриншоты с симуляторов современных устройств (iPad Pro).

    Ааа, 64 разрядные симуляторы не поддерживаются... А, ну тогда в магазин за оборудованием, чтобы опубликоваться...

    Это за гранью добра и зла.

    Я пытался найти обзоры на современные среды разработки среди которых на равных упоминается Delphi -  не нашел.

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

    В системной разработке есть более современные бесплатные средства.

    В мультиплатформенной теме, тоже.

    Базы данных? Вот честно, кто-то разрабатывает новые проекты на Interbase?

    Я не понимаю зачем покупать лицензию на Delphi здравомыслящему человеку.

    Я с Delphi с 4-й версии. Уже много лет. Но как бы не было горько признавать, она изжила себя.

    Жаль! Много хорошего и интересного было написано на Borland C++ и Delphi.

    Сейчас это рудименты.


  2. Это иллюзия.

    Все там понятно и логично.

    И!!! Самое главное доступны  все современные элементы интерфейса совершенно бесплатно.

    Не надо думать как наколхозить "Pull To Refresh"  или "Swipe For Action" 

    Все есть бесплатно. Все современные визуальные элементы. 

    Визуального редактора, как в Delphi нет.

    Но есть "Hot Reload" который является вполне рабочим инструментом.


  3. Приветы!

    Если кнопка недоступна, проверьте, есть черновик версии.

    Его надо либо выпустить для проверки, либо удалить.

    обзор выпусков/панель управления выпусками/выпуски.

    Там будет видно. Если есть черновик будет синяя кнопка "Удалить"


  4. Я немного не понял зачем вы мне привели стоимость?

    В какой из приведённых Вами лицензий работает отладчик для IOS?

    Я говорю-то совсем о другом.

    Я говорю о том, что деньги есть. И да. Если я буду заниматься покупкой, я детально разберусь какую лицензию купить.

    Я поэтому и заложил в бюджет достаточную сумму, чтобы себя не ограничивать. (разница в курсе не в счет)

    Но учитывая, что в этом ПО нет ключевой для меня функциональности, зачем мне его вообще покупать, даже за дешево?

     

     


  5. Нет не покупал.

    Я еще пионерский галстук носил и октябренком был.

    Соответственно, все вражеские, буржуинские продукты должны быть бесплатными для советского пролетариата. 😀

     

    Но смысл не в этом...

    Я вырос и честно заложил в бюджет на 20й год секундочку... 

    Delphi Architect ЛИЦЕНЗИЯ NAMED 340 000

     

    Это не мои деньги, это деньги "Филиппа Филипповича"...

    Из-за пандемии эту покупку сделать не удалось.

    Для меня, если я потрачу эти эти деньги они лягут на баланс. А это значит, что мне придется использовать это программное обеспечение, как минимум, несколько лет.

    И тут я крепко подумаю надо мне связываться с ним или нет. Т.к. вместо того, чтобы быстро сделать какие-то изменения  и заниматься дальше работой  мне нужно танцевать танец с бубном и оленьим хвостом. И после этого узнать, что решения нет.

    Оно мне надо? 

    Вот вам и RAD, где для меня главное слово "R"!

     

     

     

     


  6. я же ссылку привел.

    вот она:

    https://www.softmagazin.ru/embarcadero-technologies/delphi-architect/

     

    Первое, что попалось. Специально не искал.

    Вот более понятная ссылка

    http://store.embarcadero.ru/catalog/rubric/24

     


  7. Фсем привет!

    Как-нибудь решился вопрос или надо покупать альфа версию ФГИКС?

    Покупать не хочется т.к. переписываю приложение на флаттере.

    Это значит зря потраченные деньги. Но и приложение надо обновить...

     

     


  8. Всем привет!

    Имеем:

    Delphi 10.4.1

    PAServer 21 (12.1.10.3)

    Mac OS Catalina 10.15.5 

    XCode 11. 0 (есть 11.7 но все тоже самое)

    SDK 13 (пробовал 13.7 все то же самое)

    Simulator (Разные Айфоны)

    IOS 10.3, 11.0, 13.0

    Не получается запустить пустое приложение на симуляторе ios.

    На iPhone5 с 10.3 зависает на вечной установке на устройство.

    На остальных проходит сплэшскрин и вылетает.

     

    Уже тошнит от Английского языка.

    Не могу найти решение.

    Вопрос: у кого-то вообще с 10.4.1 на симуляторе что-то запускается?

     


  9. Вот отличное описание для тех, кто ни разу не работал.

    Там с примерами и прочим блекждеком.

    http://docwiki.embarcadero.com/Libraries/Rio/en/System.IniFiles.TIniFile

    http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/IniFiles_TIniFile.html

    Создание файла и чтение из него данных занимает нематериальное время. 

    Поэтому я делаю так:

    Создаю сам файл с начальной инициализацией при первом развертывании. В примере - это создание главной формы.

    И там же потом его читаю но уже созданный.

    вот конструкция с начальной инициализацией чтением.

    Цитата

    procedure TfrmMainForm.ReadSettings;
    var
      IniFile: TIniFile;
    begin
      if not FileExists( iniMapFilePath ) then  
      begin
       IniFile := TIniFile.Create(iniMapFilePath);
       IniFile.WriteBool('Settings','ShowLocation',false);
       IniFile.DisposeOf;

       Settings.ShowLocation  := false;
       exit;
      end;

      IniFile := TIniFile.Create(iniMapFilePath);
      Settings.ShowLocation := IniFile.ReadBool('Settings','ShowLocation', false);
      IniFile.DisposeOf;
    end;

     

     


  10. Нет не нужно его засовывать в ресурс. Создаете его при развертывании приложения как обычно.

    Если нужно сделать начальные установки, то в методах класса TIniFile есть Read***  который возвращает значения по умолчанию в качестве параметра если нечего читать:

     Settings.ZonesColor := IniFile.ReadInteger('Settings','ZonesColor',TAlphaColors.Navy);

    В данном случае, если в группе Settings не найдется параметр ZonesColor, то ReadInteger вернет значение Navy, если найдет вернет тот параметр, который там прописан.

    Я обычно при развертывании создаю INI файл  с начальными установками, сохраняю его и потом с ним работаю. 


     


  11. На мой скромный взгляд, самый простой сопсоб - это SQLite.

    Но можно и в ini.

    На мобильных платформах работает все как обычно.

    iniMapFile: TIniFile;

    iniMapFilePath := TPath.Combine(TPath.GetDocumentsPath, 'ИМЯФАЙЛА.ini');

    IniFile := TIniFile.Create(iniMapFilePath);
     

    Можно и в путь приложения сохранять.

     


  12. В общем нашел вот такую функцию:

    https://community.idera.com/developer-tools/platforms/f/ios-platform/71188/safe-area-layout

     

    Цитата

    {$IFDEF IOS}
    uses
      iOSapi.Helpers,
      iOSapi.UIKit;

    var
      FBottomBarHeight: Single;
      FBottomBarChecked: Boolean;
    {$ENDIF}

    function GetBottomBarHeight: Single;
    {$IFDEF IOS}
    var
      LResult: PSingle;
    {$ENDIF}
    begin
      {$IFDEF IOS}
      if FBottomBarChecked then
        Result := FBottomBarHeight
      else
      begin
        Result := 0;
        LResult := @Result;
        TThread.Synchronize(nil,
          procedure()
          begin
            if (not FBottomBarChecked) and
              (TiOSHelper.SharedApplication.windows.count > 0) and
              Assigned(TUIWindow.Wrap(TiOSHelper.SharedApplication.windows.objectAtIndex(0)).rootViewController) and
              Assigned(TUIWindow.Wrap(TiOSHelper.SharedApplication.windows.objectAtIndex(0)).rootViewController.view) then
            begin
              FBottomBarHeight :=
                (TUIWindow.Wrap(TiOSHelper.SharedApplication.windows.objectAtIndex(0)).rootViewController.view.bounds.origin.y +
                TUIWindow.Wrap(TiOSHelper.SharedApplication.windows.objectAtIndex(0)).rootViewController.view.bounds.size.height) -
                (TUIWindow.Wrap(TiOSHelper.SharedApplication.windows.objectAtIndex(0)).safeAreaLayoutGuide.layoutFrame.origin.y +
                TUIWindow.Wrap(TiOSHelper.SharedApplication.windows.objectAtIndex(0)).safeAreaLayoutGuide.layoutFrame.size.height);
              FBottomBarChecked := True;
            end;
            LResult^ := FBottomBarHeight;
          end);
      end;
      {$ELSE}
      Result := 0;
      {$ENDIF}
    end;

     

    Проверил. На iPhone 11 Pro работает.

    На симуляторе iPhone 5 c IOS 9.0 вылетела ошибка:

    Цитата

    Process:               SMMap [14019]
    Path:                  /Users/USER/Library/Developer/CoreSimulator/Devices/7547C9DD-CC76-4EAF-9CA8-8E98E5888194/data/Containers/Bundle/Application/B33A9F2B-F272-4C44-AB9F-9F756EB8BA1B/SMMap.app/SMMap
    Identifier:            SMMap
    Version:               1.0.0 (1.0.0)
    Code Type:             X86 (Native)
    Parent Process:        launchd_sim [91357]
    Responsible:           SMMap [14019]
    User ID:               501

    Date/Time:             2020-02-24 23:20:21.865 +0300
    OS Version:            Mac OS X 10.14.5 (18F132)
    Report Version:        12
    Anonymous UUID:        9D5CF81F-9807-FB21-AC90-239C8AF65B38


    Time Awake Since Boot: 880000 seconds

    System Integrity Protection: disabled

    Crashed Thread:        0  Dispatch queue: com.apple.main-thread

    Exception Type:        EXC_CRASH (SIGABRT)
    Exception Codes:       0x0000000000000000, 0x0000000000000000
    Exception Note:        EXC_CORPSE_NOTIFY

    Application Specific Information:
    *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[FMXWindow safeAreaLayoutGuide]: unrecognized selector sent to instance 0x10866d20'
    abort() called
    CoreSimulator 681.17 - Device: iPhone 5 (7547C9DD-CC76-4EAF-9CA8-8E98E5888194) - Runtime: iOS 9.0 (13A344) - DeviceType: iPhone 5
    terminating with uncaught exception of type NSException
     

    Появилась перменная safeAreaLayoutGuide в IOS 11.0+

    https://developer.apple.com/documentation/uikit/uiview/2891102-safearealayoutguide

    Поэтому нужно проверять версию IOS.


  13. Есть такая библиотека

    https://github.com/amarildolacerda/KernowSoftwareFMX

    То, что на скриншотах - это компонент ksVirtualListView. 

    Его работа показана в примере https://github.com/amarildolacerda/KernowSoftwareFMX/tree/master/Samples/Action Buttons

    Но мне не понравилось как он работает.

    Там ЭкшнБаттоны не тянутся за свайпом, а сами появляются поняв, что свайп сделан.

    На IOS такое поведение не очень ожидаемо.

    Но в целом работает очень даже миленько.

     


  14. Всем привет!

    Есть приложение, которое по DataSnap в потоке подключается к серверу и тянет с него какие-то данные.

    Все работает хорошо и без сбоев. Но есть нюанс!!!! ???

    Реализация следующая. Сервер SQL база.

     

    MyTread.Execute;

    try

      проверка доступности сервера

    except

        terminate

    end;

     Создание объектов для подключения к серверу

     Выставляем таймаут для TSQLConnection

    try

      открываем ClientDataSet

      читаем полученные данные   

    except

      terminate

    end;

     

    Как бы упрощенно но все понятно.

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

    Можно ли как-то красиво обрабатывать эту ситуацию?

    Или может есть какие-то шаблонные конструкции на этот счет.

    Можно конечно и колхоз наколхозить, но это всегда успеется. Хочется ведь все чтобы красиво... :)

    Вот есть ветка на эту тему, но сделал как там описано, ничего не ловится.

     

     

     

     

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