Точка входа в программу. Принудительно.

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 13.11.2020 15:13:06

Подзадолбало уже всё с этим маком...

Как сделать запрос (какое запросить событие) на то, в фокусе приложение или нет (на переднем плане или нет, активировано или нет). Вероятнее всего это одно и то же. Но задалбывает изучать дебри мака, зная что большая часть вообще не нужна...
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение скалогрыз » 13.11.2020 19:50:08

Seenkao писал(а):Но задалбывает изучать дебри мака, зная что большая часть вообще не нужна...

забить тогда на Мак. Им никто не пользуется

Seenkao писал(а):Как сделать запрос (какое запросить событие) на то, в фокусе приложение или нет (на переднем плане или нет, активировано или нет)

NSApplication.active
Код: Выделить всё
  NSApplication.sharedApplication.active;
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 13.11.2020 20:21:23

Это, насколько я понимаю, указание окну, что оно на "переднем плане" и активно. А мне нужен запрос от самого окна, что оно на переднем плане или нет (потеряло фокус). :)
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение скалогрыз » 13.11.2020 21:07:05

Seenkao писал(а):Это, насколько я понимаю, указание окну, что оно на "переднем плане" и активно.

нет, это запрос (readOnly свойство), является ли приложение активным.

если тебе нужно переднепланность окна, тогда NSWindow.isKeyWindow.
Код: Выделить всё
  NSView(Self.Handle).window.isKeyWindow
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 13.11.2020 23:59:40

нету у меня Self... я сам управляю окном. )))
Благодарю! Видимо не правильно всё понимал. Проверю.

Добавлено спустя 23 часа 13 минут 10 секунд:
скалогрыз писал(а):NSApplication.sharedApplication.active;

В общем я оказался прав. Это указание окну быть активным, а "active" - более точно даёт команду на активацию (меню всё равно не активирует).

Дальше по использованию как узнать активно окно или нет:
https://developer.apple.com/library/arc ... ctive.html
в архивной документации, но как-то не очень хорошо, хотя указано подобное и в обычной документации.

Я использовал другие методы, которые переопределил, с вызовом изначальных (для NSWindow): - becomeMainWindow и - resignMainWindow

для информации, яблоко не рекомендует их вызывать вручную, вы сломаете своё приложение и вероятно так же подпортите работу своего мака.
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 21.11.2020 20:47:03

скалогрыз, нужна маленькая консультация. )))
Я тут ковырялся ковырялся... а как вообще отнесутся пользователи/разработчики MacOS к тому, если я уберу всю строку меню полностью при работе приложения и вместе с этим освобождается полностью экран от всех меню (для полноэкранного приложения это будет просто супер, а для оконного без разницы наверно).
Просто я какое приложение не запускаю в MacOS, всё время показывается строка меню.
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение скалогрыз » 23.11.2020 05:04:01

Seenkao писал(а):Просто я какое приложение не запускаю в MacOS, всё время показывается строка меню.

это принцип работы UI в маке. Меню ровно одно на приложение (а не индивидуально для каждого окна)

Сразу скажу, что врят ли заметят. Может быть кто-то и будет ныть, что "не шаблонно", то в играх (мы же про ZenGL говорим?) в стандартное меню игры мало когда лазают.
В меню всегда ожидают найти ровно три пункта: "Preference" (настройки), "Quit" и "About". Но так ли нужно это для игры?! (естественно если игра начнёт глючить, первое желание прибить её через "Quit" в меню)

Вот кто может начать ругаться. так это AppStore!
Особенно если, для macOS там введут цензуру, как и для iOS, с проверкой на соответствие приложения "ожиданиям яблочного контроля качества".
Уже были баг репорты на LCL, что там "слишком древание функции используются" - и мне приходилось эти "старые функции" из LCL-а убирать.

Ну и приложение в полноэкранном режиме меню не должно иметь и/или показывать. (но это как и у всех)
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 23.11.2020 08:30:54

Благодарю!

Есть ли возможность проверить создаваемое приложение, чтоб оно "подходило" для яблока?
И не знаешь, как отключить звук нажимаемых клавиш? Надоедают, а для игр это критично. ))) (ночь уже не спал... бьюсь об это...)
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение скалогрыз » 23.11.2020 10:29:03

Seenkao писал(а):Есть ли возможность проверить создаваемое приложение, чтоб оно "подходило" для яблока?

отправить в AppStore xD
для игр, обычно, делается допущение - запустилось и ладно.
Главное, не используй методов помеченных maсOS документацией, как "deprecated". (...ну кроме OpenGL)
не используй "хаков", которые иногда упоминаются на stackoverflow (и подобных сайтах). (например, когда советуют переопределить метод который начинается с подчёркивания "_". с точки зрения Эппл, это их разеревированное имя, и использование его - это хак)

Seenkao писал(а):И не знаешь, как отключить звук нажимаемых клавиш? Надоедают, а для игр это критично. ))) (ночь уже не спал... бьюсь об это...)

да, это боль.
Но решение простое, ты должен назначить свой собственный обработчик клавиш (keyDown) в NSWindow, и не вызывать родительский метод.
правда, при этом могут отпасть "стандартные сочения макоси".
Но опять же, для игрового движка этот "побочный эффект" может, как раз, оказаться крайне желаемым, чтобы из игры внезанпо куда-нить не пропал фокус, или что-то там ещё вылезло.

Более вменяемого способа, кроме как перекрыть метод я не нашёл. (хотелось было бы иметь, что то вроде NSWindow.setBeep(false), но на глаза не попадалось. Может быть как-то стили окна могут повлиять, но я не эксперементировал)

Если тебя интересуют кишочки Cocoa, о том, как она порождает этот звук, то можешь почитать вот здесь
Там же есть ссылка на видео презентацию от Эппл, где они сами объясняют как происходит обработка клавиш. В некоторых случаях презентация нагляднее, чем просто прочтение текста.
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 23.11.2020 15:32:33

Понятно, стандартное "ограничение" = нет ограничений )))
Со звуком справился, почему-то флаг не срабатывал, хотя я его выставлял. Вот что значит на не выспавшуюся голову всё делать. )))

Ещё вопрос, а где посмотреть, какие именно "горячие" клавиши я должен "обязательно"/желательно обработать, дабы "пользователь" ни чего не заметил. Окромя Ctrl+Q. Или на остальное пофиг?

P.S. осталось не повредить систему, своими махинациями. )))

Добавлено спустя 1 час 5 минут 7 секунд:
Да, забыл, Big Sur поддерживается лазарусом? FPC?
Если да, то какую комбинацию системы и процессора указывать? (хотя я могу просто указать, чтоб напрямую дефайн выставляли... 8) )
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение скалогрыз » 23.11.2020 18:52:20

Seenkao писал(а):Ещё вопрос, а где посмотреть, какие именно "горячие" клавиши я должен "обязательно"/желательно обработать, дабы "пользователь" ни чего не заметил. Окромя Ctrl+Q. Или на остальное пофиг?

Cmd+Q (закрыть), Cmd+H (спрятать)

Seenkao писал(а):Да, забыл, Big Sur поддерживается лазарусом? FPC? Если да, то какую комбинацию системы и процессора указывать?

darwin-aarch64
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 23.11.2020 19:47:23

скалогрыз писал(а):darwin-aarch64

это не перемешается с iOS(iPhone)? Если у них идентично, то как разделять? Или для iOS оставили просто ARM?
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Re: Точка входа в программу. Принудительно.

Сообщение скалогрыз » 23.11.2020 20:19:44

Seenkao писал(а):это не перемешается с iOS(iPhone)? Если у них идентично, то как разделять? Или для iOS оставили просто ARM?

да, перемешивается, для fpc3.2.0 и ранних версий.
в транке, и новом 3.2.2 "ios" будет отделена от "darwin" в самостоятельноую целевую ОСь (коим был iPhoneSim).
(плюс в том, что это ещё открывает путь для всяких watchOs и tvOs, как и для macatalyst)

"просто ARM" это 32-битка. для мира Эппл, это уже совсем не актуально
скалогрыз
долгожитель
 
Сообщения: 1756
Зарегистрирован: 03.09.2008 02:36:48

Re: Точка входа в программу. Принудительно.

Сообщение Seenkao » 24.11.2020 00:14:02

скалогрыз писал(а):"просто ARM" это 32-битка.

да, я помню, потому и спрашивал.
Благодарю за информацию! Что-то я бы очень долго искал! )))
Seenkao
постоялец
 
Сообщения: 162
Зарегистрирован: 01.04.2020 03:37:12

Пред.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru