SergGur
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Доброго времени суток. Прошу совета у знатоков FMX, в частности, FMXLinux. Сейчас (больше для тренировки в написании мультиплатформенных приложений) пишу небольшую программку, которая должна с минимальными изменениями в коде работать в Windows и Linux. Дошел до диалоговых окон и с прискорбием обнаружил, что формы под Linux не реагируют на настройку BorderIcons - в заголовке все три кнопки, причем все полнофунциклирующие. Чтобы запретить лишние действия с модальными диалоговыми окнами, я вижу три варианта: все-таки как-то спрятать кнопки максимизации и минимизации, задизейблить их или обработать сообщения о максимизации и минимизации. Отсюда вопрос: что из этого реально сделать под Linux в FMX-приложении, и что из этого проще? Может быть, есть еще какие-то, не рассмотренные мною варианты? Заранее спасибо за помощь Добавлено: kaz_av, да, но в этом случае реализация будет работать только под Windows. Мне надо, чтобы это работало как минимум еще и под Linux. Юнит FMX.Platform.Linux.pas FMXLinux v1.74 try FWindow := FmuxCreateWindow(CreateStruct); if FWindow <> nil then if FindResource(HInstance, PChar('MAINICON'), RT_RCDATA) <> 0 then begin R := TResourceStream.Create(HInstance, 'MAINICON', RT_RCDATA); try SetLength(Data, R.Size); R.Read(Data, R.Size); FmuxSetWindowIcon(FWindow, @Data[0], Length(Data)); finally R.Free; end; end; except Application.HandleException(nil); end; Тут конкретно указано, что для обработки иконки приложения нужно запихнуть ее в ресурс с именем 'MAINICON'. Причем, самим и с типом ресурса RT_RCDATA. Собственно, сейчас я именно так и делаю и все работает и под Windows и под Linux. Просто я надеялся, что в FMX все-таки есть способ работать с иконкой, указанной в опциях проекта | Всего записей: 64 | Зарегистр. 05-05-2006 | Отправлено: 20:29 07-08-2023 | Исправлено: SergGur, 20:35 07-08-2023 |
|