• VCL, избавляемся от мерцания, раз и навсегда

    • Tutorial

    Delphi и C++Builder разработчики, использующие VCL не по наслышке знают о вездесущей проблеме мерцания контролов. Мерцание происходит при перерисовке, вследствие того, что сначала отрисовываеться фон компонента, и только потом сам компонент.


    И если в случае с наследниками от TWinControl частичным решением проблемы является установка свойства DoubleBuffered в True, что заставляет контрол отрисовываться в буфере (однако DoubleBuffered работает тоже не идеально, к прим.: контрол перестает быть прозрачным), то в случае с TGraphicControl решение с DoubleBuffered просто невозможно, из-за отсутствия у TGraphicControl окна, установка же DoubleBuffered в True у родителя не помогает, из-за того что отрисовка вложенных TGraphicControl-ов происходит уже после прорисовки родителя в буфере.


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


    Однажды намучившись с мерцанием, я не выдержал и решил решить эту проблему, раз и навсегда!


    Как мне удалось решить проблему?


    Читать дальше →
  • Fire-Monkey help and tips



      За годы существования фреймворк Fire-Monkey(FMX) претерпел множество изменений, и если с самого начала он был очень сырым и ненадежным, то сейчас это намного более стабильная и надежная платформа.

      Данная заметка представляет из себя сборник из нескольких полезных советов для разработчиков использующих данный фреймворк.
      Читать дальше →
    • Стиль WS_EX_LAYERED для дочерних окон в Windows 8

      • Tutorial
      В Windows Вы не можете просто так сделать полупрозрачный элемент управления, Вы должны либо рисовать все контролы сами(Qt, FMX) либо использовать DrawThemeParentBackground, что неминуемо приводит к тормозам.
      Регионы тут не помогут т.к. они не поддерживают частичную прозрачность.
      Было бы удобно использовать окна со стилем WS_EX_LAYERED («Слоистые» окна поддерживающие альфа прозрачность отдельных пикселей), однако Windows поддерживает этот стиль только для окон верхнего уровня. Так было до Windows 8 в которой, не прошло и полвека, наконец-то стало возможно назначать этот стиль дочерним окнам.

      Что это дает? Первое что приходит в голову, это то, что композицией окон будет заниматься видео карта, что даст прирост производительности.

      Под катом небольшое исследование этой возможности Windows 8.
      Читать дальше →
    • Обзор Appmethod [Много картинок]



        Upd 10.11.16: Статья во-многом потеряла свою актуальность, начиная в RAD Studio Seattle, FMX стала более-менее пригодной для разработки.

        В данном посте я выражаю свое мнение, и он может показаться слишком эмоциональным.
        Некоторое время назад Embacadero анонсировала Appmethod — среда разработки для Windows, OSX, iOS, Android, с помощью Firemonkey.
        На Techcrunch обещали, что будет Express версия но сразу после официального выхода Appmethod стало известно что, возможно будет, но будет иметь ограничения: http://www.embarcadero.com/products/rad-studio/appmethod-faq. Скачать триальную версию можно здесь: http://www.appmethod.com/.
        Лично я возлагал большие надежды на Appmethod, надеялся что они, наконец, исправили глупые баги Firemonkey.
        Читать дальше →
      • Немного о создании демок, часть 1

        • Tutorial
        Здравствуйте!
        Эта статья, прежде всего для новичков, тех, кто только решил заняться демосценой, если статья будет положительно принята сообществом, то я сделаю цикл из нескольких статей о создании демок. Каждая статья будет короткой, но в конце каждой статьи будет вполне рабочий пример.
        Сразу предупрежу, эта статья не о том как делать Demo с помощью OpenGL, DirectX, и миллионов шейдеров, об этом есть много хороших статей, я буду писать о рисовании в памяти.
        Подробности
      • Создаем Splash Screen на Delphi

        image
        Если при загрузке программы, показывается Splash Screen (это небольшое окно с картинкой), то к таким программам пользователи относятся лучше, чем программам, при запуске которых несколько секунд ничего не происходит.
        В интернете есть много примеров изготовления Splash Screen-а в Delphi, однако обычно это квадратная форма с натянутой на ней картинкой.
        Но у многих программ это не квадратная форма, а красивое окно со сглаженными краями.
        Я пытался сделать такое окно с помощью регионов, но края были неровные и смотрелись неказисто.
        Выходом стали «Слоистые окна» (LayeredWindow).
        Читать дальше →