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

Sascha

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

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

  • Посещение

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

  1. 1 час назад, alikoder сказал:

    Вы хотите в приложении, чтобы пользователь из картинок сам создал анимацию или просто нужна анимация в приложении? Если второе, то мало смысла юзать сейчас в приложухах гифки в качестве анимации, в таком случае используйте лучше lottie анимацию, состоит из json и занимает намного меньше места. Пример на делфи

    первое.

    пользователь в автоматическом режиме создает gif из картинок

  2. 29 минут назад, OnePeople сказал:
    procedure TForm1.UpdateAsset(AssetName, FilePath: String);
    var
      inputStream: JInputStream;
      FileOutputStream: JFileOutputStream;
      WData: TJavaArray<Byte>;
      LData: Integer;
    begin
    
      try
      InputStream :=  TAndroidHelper.Context.getAssets.open(StringToJString(AssetName));
      except
        exit;
      end;
    
      try
      FileOutputStream := TJFileOutputStream.JavaClass.init(StringToJString(FilePath));
      except
        exit;
      end;
    
      WData := TJavaArray<Byte>.Create(4096);
      repeat
       try
           LData := InputStream.read(WData);
       except
           LData := -1;
       end;
    
      if LData <> -1 then
         begin
            FileOutputStream.write(WData, 0, LData);
         end;
      until (LData = -1) or (LData = 0);
    
      FileOutputStream.flush;
      FileOutputStream.close;
      inputStream.close;
    
    end;

    Обновление файла из assets в папку с программой

    Пользоваться так проверяете при Form.Create что версия новая и вызываете UpdateAsset('internal/base.db', ApplicationPath + 'base.db');

     

     

    а почему вообще возникает необходимость писать этот костыль?

    почему Overwrite = Always в деплойменте не работает???

  3. 16 минут назад, OnePeople сказал:

    Библиотеки которые вы задеплоите можно использовать, а загруженные в процессе работы приложения нельзя!

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

  4. 2 часа назад, OnePeople сказал:

    Ну согласно перевода вы не можете запускать исполняемые файлы из папки своего приложения, и вы не можете изменять код библиотек .so из своего приложения. Оно вам зачем?

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

  5. Кто-нибудь может мне внятно объяснить, что это значит?

    Removed execute permission for app home directory

    Untrusted apps that target Android 10 cannot invoke exec() on files within the app's home directory. This execution of files from the writable app home directory is a W^X violation. Apps should load only the binary code that's embedded within an app's APK file.

    In addition, apps that target Android 10 cannot in-memory modify executable code from files which have been opened with dlopen(). This includes any shared object (.so) files with text relocations.

    Взято отсюда:

    https://developer.android.com/about/versions/10/behavior-changes-10

  6. 2 часа назад, Дмитрий Потапов сказал:

    Попробуйте библиотеку компонентов FGX, она содержит компонент TFgPositionAnimation, созданный для анимации свойств типа TPosition.

    Я сам пробовал использовать этот компонент - работал нормально.

    Попробовал. Не могу заставить запуститься анимацию. Метода типа Start нет. Думал, просто Enabled включу

     

      fgPositionAnimation1.StartValue := Image1.Position;
      fgPositionAnimation1.StopValue.X := Image1.Position.X + 200;
      fgPositionAnimation1.StopValue.Y := Image1.Position.Y + 200;
      fgPositionAnimation1.Duration := 1;
      fgPositionAnimation1.PropertyName := 'Position';
      fgPositionAnimation1.Enabled := True;

     

  7. 13 минут назад, Дмитрий Потапов сказал:

    Попробуйте библиотеку компонентов FGX, она содержит компонент TFgPositionAnimation, созданный для анимации свойств типа TPosition.

    Я сам пробовал использовать этот компонент - работал нормально.

    Она заброшена автором. Для Delphi 10.4.1 ее можно установить?

  8. Делаю так:

    procedure TForm1.MoveButtonClick(Sender: TObject);
    const
      Time = 1.0;
    begin
      var
      P := Image1.Position.Point + TPointF.Create(200, 100);
      TAnimator.AnimateFloat(Image1, 'Position.X', P.X, Time);
      TAnimator.AnimateFloat(Image1, 'Position.Y', P.Y, Time);
    end;

    Как одновременно изменить Position.X и Position.Y, чтобы использовать их в AnimateFloatWait?

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

  9. В 26.11.2021 в 12:28, haword сказал:
    В 26.11.2021 в 01:37, Sascha сказал:

    или на флаттере, забыли добавить.

    это подобие firemonkey, сегодня есть, через лет 5 уже забыли о нем. 

    это очень спорное утверждение от дилетанта

  10. 4 минуты назад, haword сказал:

    Добрый совет - лучше напиши на котлине или джаве, меньше потом проблем будет. 

     или на флаттере, забыли добавить.

    Но я люблю Delphi, притягивает эта среда. Хотя другие языки не сложнее (Dart, Cotlin, Java), но в Delphi быстрее всё получается.

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