Jump to content

Stas

Members
  • Posts

    536
  • Joined

  • Last visited

  • Days Won

    75

Posts posted by Stas

  1. Здравствуйте, проверял  возможность распаковки файла из ресурсов с последующим доступом к нему.

    Для этого создал файл с расширением ini путь распаковки private

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

    image.png.eec24296d80d363c4277af9c303f0fb6.png

     

    Module Load: dyld. No Debug Info. Base Address: $0000000102F1C000. Process testAssets (2881)
    Module Load: testAssets. Has Debug Info. Base Address: $00000001011B4000. Process testAssets (2881)
    First chance exception at $0000000101786B7C. Exception class EDirectoryNotFoundException with message 'The specified path was not found'. Process testAssets (2881)
     

    Ipad Mini4  IOS 14.2 Delphi 10.3.3

    Спасибо 

    testAssets.zip

  2. Доброе утро

    Внезапная ошибка в демо примере

    AndroidShareImageDemo

    [DCC Error] FGX.Share.pas(70): E2250 There is no overloaded version of 'putExtra' that can be called with these arguments

    { TfgShareManager }
    
    procedure TfgShareManager.AddBitmap;
    var
      ArrayList: JArrayList;
    begin
      if FDataTypes = [TfgDataType.Image] then
        FIntent.putExtra(TJIntent.EXTRA_STREAM, TJParcelable.Wrap(FBitmapUri)) //Вот тут
      else
      begin
        ArrayList := TJArrayList.Create;
        ArrayList.add(FBitmapUri);
        FIntent.putParcelableArrayListExtra(TJIntent.EXTRA_STREAM, ArrayList);
      end;
    end;
    

    А все потому, что 

    Android.Api.ActivityAndView;

    v.1.7.0.0  

        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Boolean>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Byte>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: JString): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: JCharSequence): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Double>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<JString>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<JCharSequence>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: JBundle): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Single>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<ShortInt>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Char>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Integer>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Int64>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Byte): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Boolean): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Char): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: ShortInt): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Double): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Single): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Int64): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Integer): JIntent; overload;

    v.1.6.3.0  

        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Boolean>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Byte>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: JString): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<JParcelable>): JIntent; overload; //И вот его очень не хватает
        function putExtra(const AArg0: JString; const AArg1: JCharSequence): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: JParcelable): JIntent; overload; //Вот его очень не хватает
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Double>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<JString>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<JCharSequence>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: JBundle): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Single>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<ShortInt>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Char>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Integer>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: IJavaArray<Int64>): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Byte): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Boolean): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Char): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: ShortInt): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Double): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Single): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Int64): JIntent; overload;
        function putExtra(const AArg0: JString; const AArg1: Integer): JIntent; overload;

     

  3. Как говорила овечка в мультике про бобров

    "Спасибо вам большое, большое вам спасибо, спасибо вам большое, большое вам спасибо"

    • Like 1
    • Haha 3
  4. Ярослав, посмотрите пожалуйста, если не добавить "setBackgroundImage(nil,0)"

    то цвет присвоить невозможно.

    Спасибо.

  5. Ага, ну понятно

    TfgiOSButton(fgButton1.Handle.NativeControl).View.setBackgroundImage(nil,0);
    TfgiOSButton(fgButton1.Handle.NativeControl).View.layer.setMasksToBounds(true);
    TfgiOSButton(fgButton1.Handle.NativeControl).View.layer.setCornerRadius(8);
    TfgiOSButton(fgButton1.Handle.NativeControl).View.layer.setBorderWidth(1);
    TfgiOSButton(fgButton1.Handle.NativeControl).View.layer.setBorderColor(TUIColor.OCClass.redColor.CGColor);
    TfgiOSButton(fgButton1.Handle.NativeControl).View.layer.setBackgroundColor(TUIColor.OCClass.redColor.CGColor);
     

  6. 20 часов назад, Yaroslav Brovin сказал:

     (без объектов на карте)

    var FAnnotation:MKPointAnnotation;
        coord:CLLocationCoordinate2D;
    begin
     FAnnotation:=TMKPointAnnotation.Wrap(TMKPointAnnotation.Alloc.init);
     coord.latitude:=50.5;
     coord.longitude:=30.5;
     FAnnotation.setCoordinate(coord);
     FAnnotation.setTitle(StrToNSStr('Test'));
     TfgiOSMap(fgMap1.Handle.NativeControl).View.addAnnotation( NSObjectToID(FAnnotation));
    end;

    Ну, маркер добавился.

  7. Добрый вечер, недавно получил аккаунт разработчика.

    Честно говоря, не знаю, интересно ли это кому-то , но на всякий случай расскажу, что я делал

    Для регистрации нам понадобится 

    1) AppleId (как можно старее)

    2) Загранпаспорт (как можно новее)

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

    4) 100 баксов  на карточке, о которых не знает Ваша жена

    5) Слабое знание английского или гугл-транслейт

    Теперь мои шаги. (Часть требований я домыслил исходя из своих трудностей)

    1) Заходите на сайт разработчика  Apple, и регистрируетесь  как разработчик.

     а) Очень важно вбивать свои анкетные данные как указано в вашем загранпаспорте

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

    2) Подтверждаете  отправку и ждете (я ждал неделю)

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

    б) Вам ничего не пришло. Это мой случай .

     б1) Обращайтесь в службу поддержки, пишите совершенно вежливо, там живые люди,  Вам предложат отослать скрин своего загранпаспорта. Сделайте это. Форма отсылки будет в ответе техподдержки

    б21) Ваши документы успешно подтверждены , тогда пункт 2а

    б22) Ваш запрос был передан в вышестоящие инстанции, вам ответят, приготовьтесь к ожиданию.

    б221) К вам обратится вышестоящий сотрудник, и попросит подождать, ответьте ему спасибой по английски, там живые люди, вежливость ценят.

    На этом мой квест был закончен. Я получил аккаунт разработчика.

    Буду рад, если  моя информация была кому-то полезна.

    Спасибо 

    • Like 4
  8.  1. Place fglayout1 relative

    2 place fgpage control inside layout1 relative flexgrow=1

    3 place fglayout2 inside layout1 absolute

    with anchor left right bottom

    3 place 3 circle inside fglayout2 relative

    4 change circle background when active tabsheet changing 

     

    • Like 1
  9. Здравствуйте, на всякий случай выкладываю исправленную версию диалогов

    Работает на 10.4 (проверял вроде)

    Просьба объявляйте  переменную как интерфейс, и  не забывайте присваивать nil по ненужности.

    Спасибо

    OpenDialog.7z

    • Like 2
  10. Здравствуйте, при использовании push notification и при подписке на 

    TMessageManager.DefaultManager.SubscribeToMessage(TfgActivityResultMessage, ResultCallback);

    При  получении сообщения (Точно не уверен, так как до ResultCallback дело не доходит )

    Возникает

    ---------------------------
    Debugger Exception Notification
    ---------------------------
    Project luvis.apk raised exception class EfgAssertError with message 'Требуется не пустое значение. ABundle'.
     

    System._DbgExcNotify(0,0xbe08b2a8,0xc89baaf6,0xc7eff74b,0xbe08b2a8)
    System.NotifyReRaise(0xbe08b2a8,0xc7eff74b)
    System._RaiseAtExcept(0xbe08b2a8,0xc7eff74b)
    Fgx.Asserts.TfgAssert.IsNotNil(0xc89babe4,nil,'ABundle')
    Fgx.Pushnotification.Android.TfgFirebasePushNotification.TfgFirebasePushNotification(0xc56e6d30,true,nil)
    Fgx.Pushnotification.Android.TfgFirebasePushService_ActivityResultMessageHandler_ActRec._0_Body(0xc1af6960)
    :C7F00CA6 __stub_in20s__ZN3Fgx16Pushnotification7Android58TfgFirebasePushService_ActivityResultMessageHandler_ActRec7_0_BodyEv

    Спасибо.

    З.Ы. Это достаточно критично, я чуть обновление не кинул.

     

  11. Беда, Ярослав

    Судя по всему проблема 

    Ваш пример про TfgCollectionView

    procedure TFormMain.fgCollectionView1BindItem(Sender: TObject; const AIndex: Integer; const AStyle: string;
      const AItem: TfgItemWrapper);
    var
      CheckBox: TfgCheckBox;
    begin
      CheckBox := AItem.GetControlByLookupName<TfgCheckBox>('check');// Вот тут теперь nil !!!
      CheckBox.Text := Format('Item %d', [AIndex]);
      CheckBox.IsChecked := FChecked.Contains(AIndex);
      CheckBox.OnChanged := CheckChangedHandler;
    end;

    Версия Дельфи не имеет значения, посмотрите пожалуйста. Пока буду откатываться.

  12. 13 часов назад, Omar Zelaya сказал:

    Hi,

    I think is my OLD device is not supported anymore, tested with a firemonkey app with same results.

    Thanks in advance,

    Omar Zelaya

    Hello, try change ndk

    Just copy ndk settings from 10.3.3

  13. Hello, imho in new version Delphi, it have own garbage collector, and you don't worry about memory leaks, about you second question, can you try load you rest data locally from inner json and compare time for loading

    Thanks 

    • Like 1
×
×
  • Create New...