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

slav_z

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

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

  • Посещение

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

    19

slav_z стал победителем дня 25 ноября 2020

slav_z имел наиболее популярный контент!

2 Подписчика

Информация о slav_z

  • Звание
    Продвинутый пользователь

Посетители профиля

5 802 просмотров профиля
  1. Изучите особенности программирования под Android, общее устройство этой ОС, структуру apk файлов (сначала будет трудно, но иначе ничего у вас не получится). Про манифест: https://developer.android.com/guide/topics/manifest/manifest-intro Отвечу на ваши вопросы, но сейчас толку будет мало: Файл-шаблон манифеста AndroidManifest.template.xml создается автоматически при создании проекта (копируется в папку проекта), окончательный файл манифеста формируется при сборке проекта, разрешения для работы с внешним хранилищем даны по-умолчанию (чтение+запись). но перед работой с внешним хранилищем в программе необходимо явно запросить разрешение у пользователя (если пользователь уже дал разрешение, то диалога-запроса не будет, код выполнится сразу без запроса): System.IOUtils - кроссплатформенная библиотека для работы с файлами (папками и прочее).. Пример вызова: TFile.WriteAllText(). Советую изучить ее исходный код.
  2. Android Ниже код который компилируется без проблем во всех ОС и в версии 10.3.3 и в версии 10.4.1 (тут нет никакого подвоха, код непростой для понимания, но верный... ) type TChain = class abstract end; TBaseChain<T: record> = class abstract (TChain) public type BlockType = T; end; TDataBlock<T> = record end; TDataChain<T: record> = class(TBaseChain<TDataBlock<T>>) end; TBlockMaster = record end; TMasterChain = class(TDataChain<TBlockMaster>) end; procedure TForm1.Button4Click(Sender: TObject); var A: TMasterChain.BlockType; begin end; Проблема возникает если объявление типов перенести в отдельный модуль. Решение в данном случае зависит от дальнейшего способа использования переменной A. Расписывать дальше не буду, т.к мало кто создает свои обобщенные типы, а с использованием встроенных типов (TArray<T>, TList<T> и прочее) я проблем не заметил.
  3. хорошо... если вам комфортнее работать со своим кодом, то попробуйте сделать так: будет утечка? я привел пример кода который вызывает проблемы, конечно, его можно переписать иначе и проблема исчезнет.. но с точки зрения языка проблем в коде нет... Response:=nil (уменьшение количества ссылок на интерфейс) это костыль который решает проблему (его быть не должно, и в версии 10.3.3 он не нужен - там все хорошо) при else этот костыль не нужен.... (только не говорите "зачем объявлять переменные в теле процедуры?" - это допустимо в языке... почему надо делать именно так - это отдельная тема)
  4. Переход с Delphi 10.3.3 на версию 10.4.1 вызвало проблемы во всех ОС без исключения. Начну с простых случаев: Linux (Ubuntu) При компиляции вылезла ошибка: ld-linux.exe: error: cannot find -lgcc_s Помогла установка (с последующим обновлением SDK) на ubuntu: sudo apt install gcc При компиляции вылезла ошибка: ld-linux.exe: error: cannot find -lz Помогла установка (с последующим обновлением SDK) на ubuntu: sudo apt install zlib1g-dev iOS Приложение при запуске стало занимать 2/3 экрана по высоте (в новом приложении хелловорд все было хорошо). Для решения проблемы надо добавить следующую строку в "старый" файл info.plist.TemplateiOS.xml Windows В приведенном ниже коде перестал освобождаться интерфейс Response. При выходе программа сообщала о не освобожденных объектах (ReportMemoryLeaksOnShutdown:=True) Вот код (помечена строка которую пришлось добавить для решения проблемы... сломали подсчет ссылок для интерфейсов, а это уже плохо...): macOS При деплое вылезло следующее: [PAClient Error] Error: E0264 Unable to execute '"/usr/bin/codesign" --entitlements "/Users/macbookpro/PAServer/...../Contents/xxxx.entitlements" -s "-" -f "/Users/macbookpro/PAServer/scratch-dir/xxxx.app"' (Error 1) [PAClient Error] Error: E0264 Failed to parse entitlements: AMFIUnserializeXML: duplicate dictionary key near line 19 Не знаю почему и как, но помогло убрать галочку здесь: Android Самые большие проблемы. В двух словах: ошибка при компиляции F2084 Internal Error: URW1237 или G14486 при использовании обобщенных классов (тот же код для других OC компилируется без проблем). Позже покажу пример кода и как получилось уговорить компилятор.
  5. slav_z

    macOS Big Sur & Delphi

    спасибо всем за ответы!
  6. slav_z

    macOS Big Sur & Delphi

    на windows будет работать? (хотел сделать вторую загрузочную систему на маке, но места не хватает...)
  7. slav_z

    macOS Big Sur & Delphi

    главное запускается - уже здорово.. приложение собранное на delphi 10.3.3 просто не запускается у пользователей на Big Sur... или расположение библиотек изменили или что... непонятно...
  8. slav_z

    macOS Big Sur & Delphi

    Есть ли проблемы с запуском приложений на macOS Big Sur у Delphi 10.4.1? Очень страшно обновлять macOS...
  9. if TFile.Exists(TPath.Combine(TPath.GetSharedDocumentsPath,'7.doc')) then +нужно разрешение на доступ
  10. да (после патча System.o конечно)
  11. вы не верите на слово, и это очень ценное качество для программиста... поэтому все надо уметь проверять... попробуйте положить в ваш список объекты такого типа (см. картинку)... и увидите когда разрушаются ваши объекты... (такое переопределение деструктора полезно когда возникают подобные вопросы)
  12. что будет с объектом A под ARC в этом случае? та же история и с вашими объектами в списке... DisposeListObjects() в моем примере нужен для обеспечения работы на всех платформах... посмотрите как реализована работа с объектами в TStringList (свойство OwnsObjects)... а конкретно посмотрите реализацию метода TStringList.Clear;
  13. вы как свой компонент регистрировали? там же и редактор для своего свойства укажите... (я delphi программист.. но думаю у вас все так же должно быть..)
  14. звучит тревожно.. еще и наследники будут? вот это метка! становится похоже на российский сериал какой-то... оно того стоит?
×
×
  • Создать...