-
Постов
14 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Активность репутации
-
Andrey Yakovlev отреагировална vasilius в Кнопка с выпадающим меню
Здравствуйте
Спасибо. Это решение имеет право на жизнь , хоть и не очевидное (само решение)
остановился на таком варианте, по данному предложенному варианту:
TPointF pos = TPointF(0, btnBackup->Height + 1);
pos = btnBackup->LocalToAbsolute(pos);
pos = Screen->ActiveForm->ClientToScreen(pos);
pmenBackup->Popup(pos.X, pos.Y);
Если есть еще варианты - был бы рад
Спасибо
-
Andrey Yakovlev получил реакцию от Barbanel в Работа с файлами в macOS
Добрый день. А вы не пробовали указывать не только имя файла, но и путь к нему? Я недавно с 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) путь к нему "внутри". Надеюсь, что понятно объяснил.
-
Andrey Yakovlev получил реакцию от Barbanel в Запуск приложения в iOS Simulator
Дополнение. Забегая вперед, скажу, что все заработало, но хотелось бы подтвердить или опровергнуть свои догадки. Ноутбук, на котором изначально все работало, имеет High Sierra в качестве ОС. Это последняя яблочная ось, которая без вопросов переваривает 32-битные приложения. МакПро, на который все переносилось и проблемы которого здесь описывались, имеет уже последнюю Mojave. Вчера взял третий чистый МакБук Про (описание выглядит, как будто тут склад продукции Аппл :)), который по случаю также все еще имел High Sierra, поставил xCode 9.4.1 и 9.2 (его выбрал в качестве Command Line Tools), создал пустой проект, подключил к нему имеющийся developer-акк, поставил PAServer20 и в Delphi Rio стала нормально появляться информация в закладке Provisioning. Как следствие, и приложение нормально долетело до телефона.
Вопрос в следующем: у кого-нибудь есть успешный опыт эксплуатации такой цепочки в ОС Mojave 64 бит? В этом проблема у нас была и нужно ждать PAServer 64? Просто догадки, ибо никакого другого объяснения случившемуся у меня нет, все выглядит, как удачное стечение обстоятельств.
Всем спасибо за ответы.
-
Andrey Yakovlev получил реакцию от Barbanel в Запуск приложения в iOS Simulator
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, чего не сильно хотелось бы, так как есть еще потребность в Андройде.
-
Andrey Yakovlev получил реакцию от MrAnderson в Запуск приложения в iOS Simulator
Здравствуйте. Такая проблема:
В наличии есть 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 и т.п. Ничего не помогает.
Кто-нибудь может помочь разобраться? Какая дополнительная информация нужна для анализа ситуации? Готов предоставить.
Спасибо.