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

Tumaso

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

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

  • Посещение

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

    39

Сообщения, опубликованные Tumaso

  1. Прошло почти 5 лет с момента начала этой темы, а проблема всё та же 🙂

    Сейчас использую Delphi 12 с 1 патчем, но работать с FMX.Graphics в консольном приложении на linux-машине без установленной графической оболочки так и не получается (компилируется, но при попытках использования работы с графикой валятся эксепшены и валится само приложение).
    При этом FMXLinux установлен, рекомендуемые либы gtk на линуксе также установлены.
    Использование внешнего приложения понятно, но задача - использовать исключительно внутренний код.

    Может есть у кого успешное решение аналогичной задачи?

  2. Вообще и Берлин, Rio и даже Alexandria уже неактуальны. Ты проверял работу на Delphi 12?

    И интересно, почему ты сравниваешь файлы из папок, в которых системные компоненты не хранятся? А хранятся проекты пользователей. Т.е. ты накидал каких то файлов, и пытаешься выдать нам за сравнение системных либ

  3. 6 часов назад, antigrav сказал:

    Правильно ли я понимаю, что номер, который печатался в опубликованном фрагменте кода - это номер главного потока?

    Сама суть Synchronize в том, чтобы выполнить код в главном потоке

  4. Удалять нужно скорее всего в реестре, там хранятся настройки. По крайней мере когда слетает верхний тулбар в IDE, удаление узла тулбаров помогает.
    Увы, но для редактора стилей я не знаю, какой именно узел в реестре за это отвечает

  5. Кому нужны ответы, сгенерированные чатгпт, спрашивают их напрямую у чатгпт.


    При этом эти ответы имеют очень низкое качество и им не место на этом форуме. Далеко за примером ходить не буду и разберу твой последний опус.

    В 03.08.2023 в 21:17, Martifan сказал:

    FireMonkey - это фреймворк разработки кросс-платформенных приложений на Delphi и C++Builder.

    Забавное вступление для ответа на форуме, посвященному именно фаерманки

    В 03.08.2023 в 21:17, Martifan сказал:

    В отличие от VCL (Visual Component Library), который тесно интегрирован с WinAPI, FireMonkey разработан для работы с различными платформами

    см. выше

    В 03.08.2023 в 21:17, Martifan сказал:

    и поэтому он не всегда корректно обрабатывает некоторые функции WinAPI.

    Конкретные примеры некорректной обработки?

    В 03.08.2023 в 21:17, Martifan сказал:

    WM_SYSCOMMAND - это сообщение WinAPI, которое посылается при выборе команды из системного меню окна. SC_CLOSE, SC_MINIMIZE, SC_MAXIMIZE и SC_RESTORE - это параметры, которые соответствуют командам закрытия, минимизации, максимизации и восстановления окна.

    Для чего этот абзац? Тогда уж предлагаю начать с описания системы сообщений в целом

    В 03.08.2023 в 21:17, Martifan сказал:

    Но поскольку FireMonkey обеспечивает кросс-платформенность и не привязан к WinAPI

    Реализация фаерманки для платформы Windows использует WinAPI

    В 03.08.2023 в 21:17, Martifan сказал:

    он может не корректно обрабатывать такие сообщения.

    и снова - конкретные примеры некорректной обработки именно из за фаерманки?

    В 03.08.2023 в 21:17, Martifan сказал:

    Поэтому, когда вы отправляете эти команды с помощью SendMessage, они могут не вызывать ожидаемого поведения.

    Отправка сообщений в целом не гарантирует на 100% их доставку получателю, хоть на FMX, хоть на VCL, хоть на Qt.

    В 03.08.2023 в 21:17, Martifan сказал:

    По этой причине, для работы с окнами в FireMonkey, лучше использовать встроенные функции и методы фреймворка. Например, для закрытия формы вы можете использовать метод Close, для минимизации и максимизации - свойства WindowState.

    Ничто не мешает использовать сообщения, хотя использовать метод Close конечно понятнее и удобнее.

    В 03.08.2023 в 21:17, Martifan сказал:

    Если вам необходимо управлять окном на более низком уровне, возможно, вам придется обратиться к платформо-зависимому коду, используя условные директивы компиляции ({$IFDEF}), чтобы разделить код Windows и код для других платформ.

    Основы кроссплатформенной разработки

    В 03.08.2023 в 21:17, Martifan сказал:

    Однако в большинстве случаев этого следует избегать, чтобы сохранить кросс-платформенность вашего приложения.

    Основы кроссплатформенной разработки

    Итого - ценность поста = 0

  6. 20 часов назад, didgik сказал:

    Это текст выглядет как Text = 'Label1'#10#13'label2'. Соответственно винда это воспринимает как одну новую строку, а андроид как две. Если оставить Text = 'Label1'#10'label2' то норм работает.

    Используй константу sLineBreak вместо #10#13 / #10 и всё будет правильно работать и виндах, и на андроиде

×
×
  • Создать...