Lazarus, отображение интерфейсных элементов в разных ОС

Сегодня мы поговорим о кроссплатформенном программировании 🙂 и его проблемах. Есть такая штука — Lazarus. Это не что иное, как open source реализация знакомого многим Delphi. Практически все 1 в 1, да еще и изначальная кроссплатформенность. Код написаный на Windows, без проблем переноситься на Linux, WinCE, Mac или куда пожелаете. Поддержка множества графических библиотек для построения интерфейсов (gtk, gtk2, win32, wince, carbon, cocoa, fpgui) делает очень быстрым разработку интерфейса программы, а простота языка (freepascal) позволяет стремительно писать код. Это не панацея, но для некоторых вещей — вполне достойное решение.

Но т.к. графические виджеты, по разному выглядят в разных ОС, встает проблема, как их синхронизировать и корректировать в зависимости от графической подсистемы. Обычно, самое что бросается в глаза — это разница размеров и начертания шрифтов между Linux и Windows. Привести примерно к одному виду позволит небольшой хак.
Читать далее