• 0
Авторизация  
AndreyS

FullScreen в El Capitan

Вопросы

Всем доброго дня!

После обновления OSX до El Capitan появился один эффект, который сильно мешает. В моей программе я не использую FullScreen для форм. Дело в том, что при FullScreen на OSX при нескольких открытых окнах, особенно если некоторые из них модальные бывают глюки, когда немодальное окно вдруг становится поверх всех окон, но при этом неактивным, т. к. есть модальное окно, на котором сейчас фокус. Раньше я не парился по этому поводу, т. к. мое приложение просто разворачивалось так же, как в винде. Но после обновления на El Capitan в заголовке формы отображается кнопка перехода в в FullScreen в независимости от значений соответствующих флажков у TForm. Есть ли какой-нибудь способ запретить окну переходить в FullScreen?

Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

  • 0

BorderStyle установить в Single или ToolWindow

Можно ещё поиграться с NSWindow.setCollectionBehavior (флаги NSWindowCollectionBehaviorFullScreenPrimary и NSWindowCollectionBehaviorFullScreenAuxiliary)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Похожий контент

    • От rakhmet
      Для FMX-приложения понадобилось разместить кнопки с битмапами в заголовке OSX-окна:

      Здесь был, это читал, но подходящего Delphi-решения найти не смог. Есть какие-нибудь идеи?
    • От Ilya.Z
      Столкнулся с такой проблемой, (Delphi Seattle, OSX+ WIndows 10) делаю форму со своим заголовком, при установленных свойствах Transperency := True  или BorderStyle := None,
      переход в режим FullScreen не отрабатывается корректно (форма не изменяет размер на максимальный),  решил перед переходом в полноэкранный режим устанавливать   Transperency := False  и BorderStyle отличный от None, но программа вылетает, иногда сразу иногда на 2-3 раз смены параметров, причем независимо от того что меняю прозрачность или бордер.  если запускать через отладчик то вываливается на такое -
      в System.Internal.ExcUtils;
      {   RaiseSignalException is called from SignalConverter, once we've made things look   like there's a legitimate stack frame above us.  Now we will just create   an exception object, and raise it via a software raise. } procedure RaiseSignalException(ExceptionEIP: LongWord; FaultAddr: LongWord; ErrorCode: LongWord);
      begin  
        raise GetExceptionObject(ExceptionEIP, FaultAddr, ErrorCode);
      end;
      под Windows все работает нормально, без всяких выкрутасов
      для проверки можно сделать пустую форму, две кнопки , и скажем панель за которую перетаскивать форму
      и три обработчика-
      procedure TForm1.Rectangle1MouseDown(Sender: TObject; Button: TMouseButton;   Shift: TShiftState; X, Y: Single);
      begin
       if (Button = TMouseButton.mbLeft) and (y < 25) then StartWindowDrag;
      end;
      procedure TForm1.sbExpandClick(Sender: TObject);
      begin
        i f BorderStyle = TFmxFormBorderStyle.None then  
                  BorderStyle := TFmxFormBorderStyle.Single  
         else  BorderStyle := TFmxFormBorderStyle.None;
      end;
      procedure TForm17.sbFullClick(Sender: TObject);
      begin  
        FullScreen := not FullScreen;
      end;
      Может кто то сталкивался, как под OSX в рантайме менять у формы прозрачность и бордер не вываливаясь в исключения, или нормально обрабатывать переход в полноэкранный режим у прозарчной (или без стандартного заголовка) формы
      Спасибо
    • От AndreyS
      Доброго всем дня. Столкнулся со следующей проблемой:
      Есть приложение для OSX, написанное на FMX (.app, упакованное в dmg). Если пользователь скачивает это приложение с сайта (сторонний сайт, не AppStore), то при запуске OSX говорит, что это приложение нельзя запускать, т. к. неизвестен издатель и пр. Так вот, что конкретно нужно сделать с этим приложением (перед деплоем или уже после), чтобы OSX не ворчала? Просто хочется заранее узнать, до того, как заплатить $99 для подключения к Developer program. Заранее спасибо.
    • От AndreyS
      Доброго всем дня! У меня в  самый неподходящий момент возникла следующая проблема:
       
      Есть приложение для Win и Mac. Работает с SQLite (Через FDQuery).
      Естественно, в базе куча данных с кириллицей. Так вот, на Win - все нормально, на одном Mac(10.10) - тоже все хорошо. Попробовал поставить на второй Mac(10.9.5) - b и вот там уже начались проблемы с кодировкой. Причем, читает из таблицы 
      S := Query.FieldByName('Title').AsString; //Без проблем а вот при записи в таблицу
      Query.ParamByName('Title').AsString := 'Заголовок'; В таблицу записывается '????????' (Причем именно запись идет неправильно). При подключении к базе Указываю, что StringFormat=Unicode.
       
      Может кто-то сталкивался с таким уже?
       
      Есть подозрения, что на 10.9.5 какая-то старая dylib, которая неправильно работает с кириллицей. тогда, наверное, нужно подключать свою к приложению, но опять же, где ее взять и как подключить? 
    • От dnekrasov
      Создаю глобальный hook на несколько событий:
      {$IFDEF MACOS} var EvtTap: CFMachPortRef; RunLoopSource: CFRunLoopSourceRef; {$ENDIF} ... procedure CreateGlobalHook; {$IFDEF MACOS} var EvtMask: UInt64; {$ENDIF} begin {$IFDEF MACOS} if EvtTap = nil then begin EvtMask := (1 shl kCGEventKeyDown) or (1 shl kCGEventFlagsChanged) or (1 shl kCGEventLeftMouseUp); EvtTap := CGEventTapCreate(kCGAnnotatedSessionEventTap, kCGTailAppendEventTap, kCGEventTapOptionListenOnly, EvtMask, @EventTapHandler, nil); RunLoopSource := CFMachPortCreateRunLoopSource(kCFAllocatorDefault, EvtTap, 0); CFRunLoopAddSource(CFRunLoopGetCurrent, RunLoopSource, kCFRunLoopCommonModes); end; CGEventTapEnable(EvtTap, 1); {$ENDIF} end; function EventTapHandler(proxy: CGEventTapProxy; type_: CGEventType; event: CGEventRef; refcon: Pointer): CGEventRef; cdecl; {$IFDEF MACOS} var iKey: Integer; iType: Integer; {$ENDIF} begin {$IFDEF MACOS} Result := event; iType := CGEventGetType(event); iKey := CGEventGetIntegerValueField(event, kCGKeyboardEventKeycode); case iType of kCGEventFlagsChanged: ...; kCGEventLeftMouseUp: ...; kCGEventKeyDown: ...; end; {$ENDIF} end; При обработке события возникает проблема: приходят все события кроме kCGEventKeyDown В документации нашел, что kCGEventKeyDown и kCGEventKeyUp приходят только в том случае если приложение запущено от root-а или внесено в список "System Preferences->Security & Privacy->Privacy->Accessibility"
       
      Может кто знает как мне программно получить доступ к этим событиям?
    • От AndreyS
      Друзья, подскажите, пожалуйста, каким образом можно ассоциировать программу для MacOS c с определенным типом файлов? Таким образом, чтобы при двойном клике выбранный файл открывался именно в этой программе. Для Windows это делается просто, прописываешь в реестр нужные ключи (при установке) и обрабатываешь через ParamStr(1). Но для маков, насколько я знаю, это все происходит по-другому сценарию. В инете нашел инструкцию как это сделать (https://delphihaven.wordpress.com/2012/08/10/associating-a-file-type-on-osx-part1/), но там для XE2, сейчас многое уже поменялось даже в реализации основного интерфейса от которого идет вся работа. Может кто-то знает как теперь правильно все это реализовать?
       
      Заранее благодарен.
    • От dnekrasov
      Подскажите, пожалуйста, как реализовать глобальные хоткеи для своего приложения в OS X
    • От SerhioUser
      Здравствуйте всем!
       
      Проверял на OS X - Mountain Lion 10.8.3
       
      После Map/Unmap-обновления картинки, изображение на 3D-форме с TImage3D не обновляется.
       
      Вот простой пример - TestMap.zip - по таймеру заносит шум в TImage3D.Bitmap.
      В XE7 работает и под Win32 и под OSX.
      В XE8 под win32 работает, а под OSX отображает белый фон. Если над формой провести каким-то другим окном, то в этом месте картинка, т.е. ее часть (в нашем случае шум), отрисовывается. Тоже самое если нашу форму вывести за экран и потянуть обратно - в местах появления формы отображается часть нашей картинки (шума).
       
      BeginUpdate/EndUpdate и Repaint результата не дали.
       
      XE8 Update1 - тоже самое.
       
      Как сие побороть?
       
      (Обычный TImage отрабатывает нормально).
    • От AndreyS
      Доброй ночи! 
       
      Необходимо получить системную информацию в MacOS. TOSVersion дает очень скудные данные, а нужна именно более-менее уникальная постоянная информация по данному компьютеру, например ID жесткого диска, ID процессора или какой-либо другой привязанный к железу или ОС идентификатор. Для Win, iOS, Android информации в интернете предостаточно, а вот по Mac как-то нет. Может кто-нибудь сталкивался с этим и смог решить это нормальным способом?
    • От SerhioUser
      Здравствуйте многоуважаемые!
       
      Пытаюсь собрать приложение с использованием библиотеки FFMPEG (не суть важно, но для конкретики).
      Под Win32 отлично собралось и запустилось с либами скачанными с официального сайта.
      Для MAC OS скомпилированных библиотек не нашел. Взял исходники и скомпилировал непосредственно в MAC OS. Получил *.o и *.a файлы. НО! Внутренние их структуры отличаются от подобных файлов, скомпиленных под C++Builder XE7.
      В результате подключаю "LIBAVDEVICE.A" файл к "hello-word" проекту и получаю ошибку:
      [ILINK32 Error] Fatal: Archive file 'C:\...bla-bla...\MACLIBTEST\OSX32\DEBUG\LIBAVDEVICE.A' lists no symbols in its dictionary. Для проверки скомпилил под маком несколько других библиотек - результат такой-же. "*.a" - файлы не распознаются студией.
      Может есть какой конвертор, или нужно скомпилить на маке с какой-нибудь опцией?
      Собственно, какая технология подключения сторонних библиотек к FMX-проектам?
       
      Для примера прикрепил архив libavdevice.zip с a-файлом.
       
      Софт:
      RAD Studio XE7
      OS X Mountain Lion (10.8.3)
      XCODE 4.6.3
       
      Спасибо!
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу