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

Andrey Yakovlev

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

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

  • Посещение

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

    2

Весь контент Andrey Yakovlev

  1. Здравствуйте, есть вопрос к сообществу: Кто-нибудь пробовал написать и использовать dylib в приложении для OSX? Мне удалось загрузить библиотеку и получить указатели на функции. И они даже вызываются, если параметры или возвращаемые значения являются простыми типами, вроде Integer. Беда начинается, если попытаться передать в качестве параметра строку, сразу начинаются Access Violation и прочие гадости. Знаю, что и в dll для Windows с этим было не ахти, но там можно было подключить Sharemem или работать через PChar, выделяя и освобождая память в самой библиотеке. Кому-нибудь удалось решить похожую проблему? В общем виде вопрос можно поставить так: передать в функцию строку (json, например) и получить обратно строку как результат, любым образом, даже самым неожиданным. Заранее спасибо.
  2. Господа и дамы, здравствуйте. А удалось ли кому найти и использовать сабж, а именно поменять размер шрифта в программе следом за изменениями в iOS - Настройки - Экран и яркость - Размер текста? Я видел тут упоминание об TUIFont.OCClass.systemFontSize, но это скорее константа, а не переменная, всегда возвращает 14. Спасибо.
  3. Ну а что, вполне себе красиво. Я даже себе утащил ) А ClientToScreen можно и без обращения к Screen->ActiveForm вызвать, вы же и так в методе класса формы находитесь, будет на строчку короче pos = ClientToScreen(btnBackup->LocalToAbsolute(pos));
  4. Добрый день. Ну, например, так: procedure TMainForm.ButtonClick(Sender: TObject); begin PopupMenu.Popup(Screen.MousePos.X, Screen.MousePos.Y); end; Дополню нехитрый код комментарием: не видел в FMX кнопки с такой вот стрелочкой справа для вызова выпадающего меню. Была такая в VCL с отдельным свойством DropdownMenu. Может быть, плохо искал. Поэтому я, недолго думая, сделал у себя вызов меню по клику на саму кнопку. Думаю, что в desktop-версии вполне допустимо.
  5. Добрый день. А вы не пробовали указывать не только имя файла, но и путь к нему? Я недавно с FM познакомился, не самый большой специалист по Маку ), но я бы не полагался на указание файла без каталога. У меня сделано так, например: function GetAppPath(): string; begin Result := TPath.GetDirectoryName(ParamStr(0)); end; function MakeSettingsFileName(aInsideApp: boolean): string; var lFileName: string; begin lFileName := TPath.GetFileNameWithoutExtension(ParamStr(0)) + '.ini'; if (aInsideApp) then Result := GetAppPath() else Result := TPath.GetDocumentsPath(); Result := TPath.Combine(Result, lFileName); end; Смысл такой: поскольку приложение в macOS распространяется через dmg-пакет, я включаю конфигурационный файл внутрь Program.app, как раз в папку Contents/MacOS/, чтобы программе было с чем запуститься в первый раз (всяческие настройки соединения с сервером, БД, ну вы понимаете). В самой программе, я сначала делаю проверку наличия конфигурационного файла, сформировав путь до него вызовом функции MakeSettingsFileName(false). В этом случае, конф. файл ищется в каталоге Документы. Это, на самом деле, не так и важно, где он может лежать снаружи, идея тут в том, что в процессе работы конф. файл меняется и при выходе из программы всегда сохраняется снаружи, чтобы иметь возможность пользоваться им после замены dmg-пакета и инсталляции новой версии программы, которая опять будет содержать внутри себя "пустой" конф. файл. Если файл снаружи не нашелся, формируем повторным вызовом MakeSettingsFileName(true) путь к нему "внутри". Надеюсь, что понятно объяснил.
  6. Дополнение. Забегая вперед, скажу, что все заработало, но хотелось бы подтвердить или опровергнуть свои догадки. Ноутбук, на котором изначально все работало, имеет High Sierra в качестве ОС. Это последняя яблочная ось, которая без вопросов переваривает 32-битные приложения. МакПро, на который все переносилось и проблемы которого здесь описывались, имеет уже последнюю Mojave. Вчера взял третий чистый МакБук Про (описание выглядит, как будто тут склад продукции Аппл :)), который по случаю также все еще имел High Sierra, поставил xCode 9.4.1 и 9.2 (его выбрал в качестве Command Line Tools), создал пустой проект, подключил к нему имеющийся developer-акк, поставил PAServer20 и в Delphi Rio стала нормально появляться информация в закладке Provisioning. Как следствие, и приложение нормально долетело до телефона. Вопрос в следующем: у кого-нибудь есть успешный опыт эксплуатации такой цепочки в ОС Mojave 64 бит? В этом проблема у нас была и нужно ждать PAServer 64? Просто догадки, ибо никакого другого объяснения случившемуся у меня нет, все выглядит, как удачное стечение обстоятельств. Всем спасибо за ответы.
  7. Barbanel, видел описание вашего опыта в другой ветке форума. Я уже: - зашел в iCloud под AppleID, который мы завели для developer-аккаунта - удалил все сертификаты из связки ключей, которые хотя бы как-то указывали на другие мои аккаунты и импортировал в xCode - Pref - Accounts тот самый, который у нас developer - сходил в developer.apple.com и завел там сначала AppID, а затем provisioning profile, для которого явно указал свой iPhone - загрузил и импортировал этот profile в xCode, точно вижу, что он про мой телефон знает - переключил PAServer в verbose режим и вижу, что он пытается сканировать имеющиеся сертификаты и видит даже больше, чем один и все они, так или иначе, имеют отношение к нашему developer-аккаунту - открыл тестовое приложение в Delphi Rio (и ее уже поставил, хоть это и долго), прописал правильно bundle identifier в VersionInfo и... все равно, Provisioning упорно ничего не видит. Извиняюсь за излишне подробное описание. У нас есть первый ноут, на котором приобретался сертификат и там все работает. Но я не понимаю, в чем разница, если сам сертификат прошел процедуру импорта/экспорта, из Иксов все на телефон встает как надо. Тупик, который все больше склоняет к написанию софта прямо в xCode, чего не сильно хотелось бы, так как есть еще потребность в Андройде.
  8. Доброе утро. Правда, что никто не сталкивался с подобным?
  9. Пробовал я эту закладку. Обычно мне сообщают следующее: "No provisioning profile found for the selected build configuration and the selected device "DeviceName". Please log in to the iOS Developer Program to download the provisioning profile for the selected build configuration and the selected device." Что хотят сказать, можете разъяснить? Судя по тому, что без запущенного PAServer сообщение другое, Delphi узнает эту информацию через него. Не могу понять, как всем заинтересованным сообщить, что сертификат разработчика у меня есть.
  10. Это было проделано. Логин и пароль имеются. Запуск напрямую на телефон приводит к ситуации "Cannot connect to the MAC". Тут вопрос шире: есть Мак и я что-то устанавливаю на него, пользуясь своей личной учеткой. Для покупки сертификата был создан отдельный AppleID, со своими логином и паролем. Вот где они должны фигурировать? Я где-то прочитал, что и paserver нужно "учить", каким аккаунтом пользоваться.
  11. А какой xCode может считаться достаточно старым для этого? Самая младшая версия сейчас 9.2. Я полагаю, что аналог этой утилиты - выбор версии Command Line Tools на закладке Locations окна Preferences. Впрочем, я проверил. По ключу "-p" эта утилита указывает как раз на xCode 9.2, что соответствует выбору в окне с настройками. Предлагаете поставить еще более ранний xCode? А если отбросить мысли о симуляторе и думать про запуск на телефоне, есть ли какой-то легальный способ перенести сертификат с одного Мак на другой? Дело в том, что developer-сертификат есть в наличии, но куплен на другого разработчика и используется на другой машине.
  12. CyberStorm, cпасибо за ответ. Только из обсуждения в той ветке я для себя понял, что по крайней мере для iPhone5 запуститься должно. А у меня всегда один эффект: у симулятора нет окна телефона, какое у него появляется, если запустить приложение из xCode, а есть только значок в панели задач Мака и главное меню в верхней части рабочего стола, у которого 90% пунктов неактивны. Вам не довелось это проверить?
  13. Здравствуйте. Такая проблема: В наличии есть Windows 10 с RAD Studio 10.2.3 Tokio и RAD Studio 10.3 Rio (на выбор), MAC с установленными xCode 9.2, 9.4, 10.0 и 10.1, PAServer 19/20 При попытке запустить тестовое приложение из Delphi в iOS Simulator 11.2 сам симулятор на MAC как-будто бы запускается, Delphi через некоторое время рапортует о том, что "все запущено - сходи на свой MAC и посмотри на результат", но по факту ничего не происходит. Приложение не появляется в симуляторе. Более того, симулятор после своего запуска не показывает окно с телефоном выбранной модели. Пробовал уже кажется все мыслимые сочетания Delphi, PAServer, CommandLineTools и т.п. Ничего не помогает. Кто-нибудь может помочь разобраться? Какая дополнительная информация нужна для анализа ситуации? Готов предоставить. Спасибо.
×
×
  • Создать...