Lazarus Tutorial/ru
Lazarus — это бесплатный инструмент разработки с открытым исходным кодом для Free Pascal compiler, который, в свою очередь, также является бесплатным и с открытым исходным кодом. Интегрированная среда разработки Lazarus (IDE, см. Скриншоты)) — это среда программирования для создания автономных графических и консольных приложений.
В настоящее время Lazarus работает на Linux, macOS, FreeBSD и Windows и предоставляет настраиваемый редактор исходного кода и среду создания визуальных форм вместе с менеджером пакетов, отладчиком и полной интеграцией графического интерфейса с Free Pascal Compiler ,
Contents
Обзор
Lazarus это бесплатный инструмент разработки с открытым кодом, предназначенный для также бесплатного компилятора с открытым кодом Free Pascal (object pascal). IDE Lazarus (screenshot) это стабильная богатая возможностями среда разработки для создания самостоятельных графических и консольных приложений. В настоящее время она работает на Linux, FreeBSD и Win32 и предоставляет настраиваемый редактор кода и визуальную среду создания форм вместе с менеджером пакетов, отладчиком и GUI полноcтью интегрированным с компилятором FreePascal.
Начнем — Ваша первая Lazarus-программа!
Найдите, установите(Installing Lazarus) и запустите Lazarus, который кроме того содержит и компилятор FreePascal.
На экране появятся несколько окон: главное окно вверху, Инспектор Объектов (Object Inspector) слева, занимаюший большую часть экрана Редактор Кода Lazarus (Lazarus Source Editor), и готовое к использованию окно Form1 поверх окна Редактора.
В главном окне сверху, под строкой меню располагается строка вкладок. Если вкладка ‘Standard’ еще не выбрана, выберите ее, щелкнув на ней левой кнопкой мыши. Затем найдите иконку Button (прямоугольник с текстом ‘Ok’ на нем) и щелкните на ней мышкой. Затем щелкните в окне Form1, где-нибудь слева от середины. Появится затененный прямоугольник с надписью ‘Button1’. Вновь щелкните на иконке Button на вкладке Standard и щелкните на Form1 где-нибудь справа от центра: появится прямоугольник с надписью ‘Button2’.
Теперь щелкните на Button1 чтобы выбрать ее. Инспектор Объектов отобразит свойства объекта Button1. Не далеко от верхнего края располагается свойство с именем ‘Caption’, в котором отображается значение ‘Button1’. Щелкните в этой строке и измените ‘Button1’ на ‘Нажми меня’ (прим.пер.: в оригинальном тексте ‘Press’. Далее будет приводиться только русский текст надписей, а оригинальный можно посмотреть на странице с английским текстом). Если вы нажмете клавишу ENTER или щелкнете в другой строке, то увидите, что надпись на первой кнопке Form1 изменилась на ‘Нажми меня’. Теперь щелкните в Инспекторе объектов на вкладке Events (События) и вы увидите различные события, на которые может реагировать кнопка. Среди них OnClick, OnEnter, OnExit и так далее. Щелкните в строке справа от OnClick: появится маленькая кнопка с троеточием (. ). Если вы ее нажмете, то автоматически перенесетесь в Редактор Кода и курсор окажется в участке кода, начинающегося с:
Нажмите F12 для переключения от Редактора Кода к окну формы Form1.
Теперь отредактируйте свойства кнопки2 (Button2): щелкните на Button2 для отображения ее свойств в Инспекторе Объектов. Измените свойство Caption на ‘Выход’ вместо ‘Button2’. Теперь перейдите на вкладку событий (Events) и щелкните в строке OnClick. Щелкните на кнопке с троеточием и перенеситесь в Редактор Кода, в тело другой процедуры:
Теперь нажмите F12 чтобы увидеть форму Form1 вновь. Теперь вы можете попытаться скомпилировать. Простейшим способом сделать это является выбор в главном меню пункта ‘Run’ а в появившемся подменю пункта ‘Run’. Вы также можете просто нажать клавишу F9. Сначала произойдет компиляция, а затем (если все в порядке) линковка и запуск вашей программы.
Промелькнет несколько текстовых окон и будут выведены различные сообщения компилятора, а потом вновь появится окно формы Form1, но уже без точечной сетки; это и есть реальное главное окно вашего приложения, и оно ожидает нажатия кнопок или любого другого вашего действия.
Попробуйте щелкнуть на кнопке ‘Нажми меня’. Вы увидите, что надпись на ней сменится на ‘Нажми еще раз’. Если вы нажмете еще раз, то на кнопке так и останется надпись ‘Нажми еще раз’!!
Теперь щелкните на кнопке с надписью ‘Выход’. Окно закроется и программа завершится. Вновь появится окно формы Form1 с точечной сеткой, готовое для редактирования.
Теперь (и вообще почаще) вы можете сохранить свою работу выбрав последовательно пункты меню Project > Save Project As > имя_вашего_файла.pas
Вторая попытка.
Вновь откройте сохраненный вами проект.
На форме Form1 щелкните на кнопке ‘Нажми меня’ (Button1) чтобы выбрать ее. В Инспекторе Объектов перейдите на вкладку событий (Events), щелкните на строке справа от события OnClick, щелкните на кнопке с многоточием, чтобы перенестись к соответствующему участку кода в Редакторе.
Измените код, на приведенный ниже:
Сохраните проект, перекомпилируйте и запустите. Левая кнопка теперь циклически меняет свой текст с одного сообщения на другое.
Сделай дело — гуляй смело!
Если вы хотите писать консольные или программы с текстовым интерфейсом на Pascal (например, если вы следуете стандартному курсу изучения программирования на Pascal, или вам нужно написать программу для работы в командном режиме или системную программу) вы также можете использовать Lazarus для написания, компилирования и выполнения ваших программ. Это прекрасная среда для программирования на Pascal. Смотри Console Mode Pascal.
Редактор
Когда вы запускаете Lazarus в первый раз, на вашем рабочем столе появляется набор несвязанных ‘плавающих’ окошек.
Первое, расположенное в самом верху рабочего стола имеет название Lazarus Editor vXXXXXX — project1 (название зависит от используемой версии и названия открытого проекта). Это главное окно управления проектом и оно содержит Главное Меню и Палитру Компонентов (Component Palette).
Строкой ниже располагается Главное Меню с обычными пунктами File, Edit, Search, View и некоторыми специфичными для Lazarus. Ниже Слева располагается набор кнопок, предоставляющих быстрый доступ к некоторым функциям главного меню, и справа — Палитра Компонентов. (Примечание переводчика: если при установке вы выбираете русский язык, то весь интерфейс будет на русском, то есть пункты меню, названия окон и вкладок, а также подсказки. В связи с этим далее все названия указаны на русском, а в скобках (на английском) языке. В любой момент можно переключить язык интерфеса в пункте меню Окружение. )
Под окном редактора Lazarus слева располагается окно Инспектора Объектов, а справа Редактор Исходного Кода (Lazarus Source Editor). Может быть и другое окно меньшего размера, озаглавленное Form1, расположенное поверх Редактора Исходного Кода. Если его в данный момент не видно, то можно переключиться к нему, нажав клавишу F12, которая позволяет переключаться между Редактором Исходного Кода и Окном Формы. Окно формы это то место, где вы разрабатываете графический интерфейс вашей программы, а в Редакторе Исходного Кода отображается разрабатываемый вами Pascal-код вашего приложения. Использование Инспектора Объектов детально обсуждается ниже после описания Палитры Компонентов.
Когда вы начинаете новый проект (или впервые запускаете Lazarus) по умолчанию создается стандартная форма, состоящая из прямоугольника с точечной сеткой для более легкого позиционирования различных компонентов на форме и системная строка сверху, которая обычно содержит кнопки Свернуть, Развернуть и Закрыть. Если вы щелкните мышкой в любом месте формы, вы увидите ее свойства в Инспекторе Объектов у левого края экрана.
Другие окна, которые могут появиться в процессе работы: Инспектор проектов, содержащий сведения о файлах, включенных в проект, и позволяющий вам добавлять и удалять файлы из проекта; Окно Messages (Сообщения), отображающее сообщения компилятора, ошибки и отчеты по вашему проекту; если Lazarus был запущен из терминала, то это окно остается запущенным и в нем отображаются подробные сообщения компилятора.
Главное меню
For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the Main menu/ru page.
Кнопочная панель
Маленькая панель в левой верхней части основного окна, слева от палитры компонентов, имеет набор кнопок, повторяющих наиболее часто применяемые выборы основного меню:
Создать модуль, Открыть (со стрелкой вниз для отображения списка недавно использованных файлов), Сохранить, Сохранить все, Создать форму, Переключить Форма/Модуль (т.е. показать либо форму, либо модуль исходного кода), Показать модули, Показать формы, Запуск (т.е. компиляция и выполнение), Пауза, Шаг со входом, Шаг в обход (последние два – функции отладчика).
Палитра Компонентов
Это панель инструментов с вкладками, показывающая множество иконок, представляющих обычно применяемые компоненты при построении форм.
Каждая вкладка представляет собой набор иконок, составляющих функциональную группу компонентов. Самая левая иконка на каждой вкладке в виде стрелочки называется Средством Выбора.
Если навести курсор мыши на иконку палитры компонентов без нажатия, появится название данной компоненты. Заметьте, что каждое название начинается с ‘T’, что означает ‘Тип’, а точнее ‘Класс’ компоненты. При выборе компоненты для размещения на форме, Class добавится в секцию type раздела interface модуля (обычно в виде части на TForm1), и instance (образец) этого класса добавится в секцию var (обычно как переменная Form1). Все Methods (методы), разработанные для формы или ее компонент (процедуры или функции) будут помещены в раздел implementation модуля.
В приведенном ниже списке компонентов можно найти связи с файлами, которые содержат описания модулей, в которых они найдены. Если нужно узнать о свойствах конкретного компонента, зачастую следует обратить внимание на Наследование этого компонента и просмотреть свойства базового типа, из которого он произведен. Например, для изучения TMaskEdit очень полезно просмотреть TCustomMaskEdit.
ВКЛАДКИ (их имена понятны и не требуют разъяснений):
- Standard
- Additional
- Common Controls
- Dialogs
Некоторые полезные процедуры или функции группы Dialog не размещены на Палитре, но легко применяются путем прямого вызова из исходной программы.
Несколько хороших примеров использования компонентов находятся в папке $LazarusPath/lazarus/examples исходной установки. Многие программы показывают способы применения диалогов и других компонентов без использования IDE и палитры компонентов, при наличии файла определения отдельной формы: все компоненты явно и полно определены в основной программе. Другие программы примеров полностью используют IDE.
Некоторые примеры не будут сначала работоспособны: понадобится настройка путей и разрешений для файлов и папок. При желании скомпилировать пример убедитесь, что для файлов и папок установлены разрешения read/write/execute, или скопируйте файлы в папку с подходящими разрешениями.
Попробуйте выполнить программу ‘testall’ для просмотра меню доступных компонентов совместно с маленькими примерами тестовых форм для большинства из них; затем просмотрите исходный код для понимания принципов их работы!
- Misc
- Data Controls
- Data Access
- System
- SynEdit
Для работы с палитрой нужно открыть форму (если форма не открыта, выбрать Файл -> Создать Форму). Щелкните на иконке нужного компонента на нужной вкладке Палитры, затем щелкните на форме, и этот компонент появится на ней. После этого можно выбрать новый компонент щелчком мыши, переместить его в желаемое место и подогнать размеры. Эти установки можно сделать также с помощью Инспектора Объектов, регулируя значения соответствующих свойств данного компонента.
При установке дополнительных компонентов, разработанных самостоятельно, или полученных со стороны, появятся дополнительные вкладки с соответствующими иконками на Палитре компонентов. Эти новые компоненты могут быть выбраны и использованы на формах, как и те, что поставлены по умолчанию.
Отладчик
Писал и редактировал: Romlo
Настройки
Чтобы пользоваться отладчиком, должны быть установлены галочки:
проект > параметры компилятора > вкладка «Связывание» >
- галочка «Выдавать номера строк в ошибках времени исполнения»
- галочка «Генерировать отладочную информацию для GDB (замедляет сборку)»
Кнопки
Управление отладкой производится вот этими пятью кнопками:
- Зеленый треугольник — «Запуск» — скомпилировать и запустить приложение под отладчиком.
- Вертикальные палочки — «Пауза» — здесь серые, а вообще синие — это пауза, можно приостановить приложение, например, при трассировке.
- Квадратик — «Останов» — здесь серый, а вообще красный — закрыть приложение. Это если оно повисло (напр. в бесконечном цикле).
Остальные две кнопки используются при трассировке программы, про которую мы поговорим подробнее.
Трассировка
Трассировать программу — значит выполнять её шаг за шагом, построчно. Для трассировки какого-либо участка программы, нужно установить в нужном месте «точку останова». Для этого надо найти начало участка программы в редакторе кода, а затем щёлкнуть по его номеру слева. При этом сама строчка выделится красным, а рядом с номером появится красный кружок.
После нажатия на «запуск», знак вопроса в кружке должен смениться галочкой. Если вместо галочки там крестик, значит, точка останова не была установлена по каким-то причинам. В этом случае лучше ещё раз проверить настройки и перезапустить Lazarus. Если же всё получилось, продолжим. Далее, нужно вызвать то событие, при котором начнёт выполняться данный участок кода (то есть если вы поставили точку останова в начале button1_click, например, то теперь вам надо нажать эту кнопку). При этом должен показаться редактор кода. Ранее красная строчка теперь станет серой, а галочка в кружке сменится стрелочкой:
Вот теперь и вспомним про те две кнопки, что мы не рассмотрели. первая называется «Шаг со входом», вторая — «Шаг в обход». Смысл первой заключается в том, что если сейчас вы «стоите» на строчке с какой-то процедурой или функцией, то нажав эту кнопку, вы перейдете на эту процедуру и будете выполнять пошагово уже её. Когда она закончится, вы вернётесь обратно, но уже на следующую строку. Как несложно догадаться, нажав на вторую кнопку, вы не зайдёте в процедуру, она просто выполнится, а вы перейдёте на следующую строку.
Отдельно надо сказать, что «Шаг со входом» не работает, если функция, на которой вы «стоите», экспортирована из библиотеки (например, в WinAPI-функцию вы зайти не сможете).
Также имеется возможность просматривать содержимое переменных, для этого надо просто навести на неё мышку прямо в редакторе кода, во всплывающей подсказке будет указан адрес переменной и её содержимое:
Ну и в дополнение к сказанному добавлю, что чтобы продолжить выполнение программы в обычном режиме (если вам надоело её трассировать), достаточно нажать кнопку «запуск». Ну а чтобы убрать точку останова, надо закрыть приложение и ещё раз щёлкнуть по номеру строки, на которой эта точка стоит. ну и после этого заново откомпилировать приложение.
Файлы Lazarus
Когда вы выполняете сохранение на самом деле вы сохраняете два файла:
(Вы сохраняете и больше, но это те файлы, которым вы даете имена). Файл проекта (lpr) и файл модуля (pas) должны иметь разные имена, потому что Lazarus присваивает имя модулю (в исходном коде) также, как и имя файла модуля, а программе по имени файла проекта (это необходимо сделать иначе компилятор может впоследствии не найти модуль по ссылке на него в файле проекта). Во избежание противоречий (ошибок) следует изменить все упоминания Unit1 на xxx.
Lazarus
Lazarus is a Delphi compatible cross-platform IDE for Rapid Application Development. It has variety of components ready for use and a graphical form designer to easily create complex graphical user interfaces.
What can it do?
You can create your own open source or commercial applications. With Lazarus you can create file browsers, image viewers, database applications, graphics editing software, games, 3D software, medical analysis software or any other type of software.
Where to learn?
Lazarus has a huge community of people supporting each other. It include scientists and students, pupils and teachers, professionals and hobbyists. Our wiki provides tutorials, documentation and ideas. Our forums and mailing-list offer a space to ask questions and talk to users and the developers.
Приветствуем на сайте Lazarus IDE
Lazarus — это специальная программа с интегрированной (свободной) средой для разработки на основе компилятора Free Pascal. Lazarus — программа с полностью открытым исходным кодом, которая направлена на обеспечение библиотек класса Free Pascal . FP — компилятор интегрированной среды разработки соответствует образцу программе Borland — Delphi — и библиотеки Лазарус, которые эквивалентны VCL. Она смоделирована на Delphi и позволяет импортировать проекты, выполненные в Delphi.

Основные Возможности
- Работает на многих платформах
- Открытый исходный код для создания любых проектов
- Возможность использовать 200 компонентов
- Внедрении необходимых компонентов через пакет файлов
- Возможность использовать программу для коммерческих целей
Окружающая среда Lazarus подходит для всех разработчиков и особенно для тех, кто намерен создавать программы с нуля. Интерфейс программы очень прост, как для новичков, так и для тех кто уже занимается программированием на профессиональном уровне. Этого удалось достичь принципом перетаскивания выбранного компонента. Программа позволяет создавать приложения с помощью перетаскивания всех необходимых элементов и помещать их в специальные окна. Большим преимуществом этой программы является возможность компиляции для любых операционных систем (Windows, OSX, Linux и Windows CE).
Очередным преимуществом программы является быстрый переход между различными интерфейсами и системами обеспечения библиотеки интерфейса. На данный момент, Lazarus поддерживается следующими типами интерфейсов: WIN32 GDI, GTK + 1.2.x (Unix, Mac OS X), GTK + 2.x, Qt 4 (C ++) и Windows. К тому же, Лазарус является одним из немногих инструментов, в отличии от своих конкурентов, который может создавать приложения для ПК (Windows CE, Qtopia).

Особенностью приложения является полностью самостоятельное API, как только вы напишите свой собственный код, вы можете просто подключить его с помощью API. Возможности проекта, например:
Если вы создаете продукт на Windows, используя стандартные виджеты Windows, сначала нужно определится какой набор виджетов вы хотите использовать. Затем скопируйте код на ваше устройство Linux разработки, компиляции и ссылки с GTK + интерфейсного блока. Вот и все — вы только что создали версию вашего продукта для Linux на Windows с помощью Lazarus без какого-либо дополнительного кодирования.
Пример работы с Лазарус
Для тех, кто работает с кросс-платформами, Лазарус — это удивительный проект, который обещает сделать создание виджетов намного проще.
Лазарус — отличный, бесплатный компилятор который подойдет для ежедневного использования, как новичкам, так и продвинутым пользователям, благодаря удобно расположенным кнопкам и интуитивно понятному интерфейсу вы уже с первого дня сможете начать разработку своего приложения.
Со временем автора намерены добавить полную поддержку PalmOS и Symbian OS. Программа доступна как на русском так и на украинском языке.
Уроки программирования
Как говорится лучше один раз увидит чем 100 раз услышать. Лазарус это отличная программа с помощью, которой вы сможете создавать полезные и функциональные приложения и качественные проекты. Изучение Лазарус не займет у вас много времени, но все же мы настоятельно рекомендуем вам заняться изучением этой программы с помощью видео уроков, где вы начнете с самых азов и спустя некоторое время самостоятельно сможете создавать свои собственные приложения. У нас на сайте есть отличная рубрика видео уроков в которой мы приготовили для вас только лучшие и практичные уроки по работе с Лазарус. Для начала предлагаем вам первый видео урок ознакомления и обзора данной программы.
Версия Лазарус
На сегодняшний день актуальная версия 2.2.0. Следующее обновление будет под версией 2.4.0. В этом обновлении вас ожидает значительное улучшение и модернизирование программы, а так же перевод Лазарус на многие языки.
Немножко истории
Проект стартовал в феврале 1999 г. Основателями были три частных лица:
- Клифф Baeseman
- Шейн Миллер
- Майкл А. Гесс
Все трое пытались создать проект Megido, который в итоге не осуществился. В отчаянии они начали проект Lazarus. На сегодня этот проект имеет постоянный рост благодаря участию сторонних разработчиков. Сами же создатели уже не участвуют в проекте.
Скачать последнюю версию
Скачать последнюю версию Lazarus IDE вы можете в специальном разделе на нашем сайте.
Lazarus как он есть
Довольно часто наше нежелание разбираться в вопросе и уверенность в собственной логике рождает неверные предположения. Эти предположения, высказанные как утверждения на публичной площадке, могут прочно осесть в чужих головах и сформировать ложные отрицательные представления.
Так в комментариях к недавней теме «Lazarus 1.0 увидел свет!» были высказаны некоторые неверные утверждения, а также задан ряд вопросов оставшихся без ответов. Являясь разработчиком Lazarus и FPC уже довольно продолжительное время, я могу и хочу дать ответ на большинство связанных с этими продуктами вопросов и развеять некоторые неверные предположения.
Утверждение: Размер исполняемых файлов оставляет желать лучшего. Виноват компилятор, компоновщик и др.
Некоторую информацию по данной теме можно получить на wiki-странице.
Итак, основная составляющая размера исполняемого файла — отладочная информация. Отладочную информацию добавляет компилятор FPC когда ему передан ключ «-g». FPC может генерировать 2 вида отладочной информации: устаревший stabs и современный dwarf (версии 2 или 3), что также определяется переданными компилятору ключами. Оба вида отладочной информации понимаются отладчиком gdb. В Lazarus включить/выключить отладочную информацию, а также определить ее вид можно на закладке «Компоновка» в параметрах проекта: 
Если вы собираете проект под Windows или Linux, можно сформировать внешний файл отладочных символов. В этом случае в исполняемый файл отладочная информация добавляться не будет, а вместо нее будет помещена ссылка на внешний отладочный файл.
Исключение отладочной информации уменьшает размер пустого проекта с формой с 20Мб до 1,6Мб на Windows. Но, 1,6Мб тоже больше чем 300Кб, который выдавал Delphi 7 (Delphi XE, к примеру, уже выдает значительно больше из-за распухания RTTI). Дело тут не в компиляторе и не в компоновщике, которые делают свою работу верно, а все дело в LCL.
LCL — Lazarus Component Library архитектурно состоит их двух частей: фронтэнда — платформонезависимой библиотеки классов для разработчиков приложений (TForm, TButton, TLabel, . ) и бэкэнда — части отвечающей за реализацию этих компонент под конкретную платформу (win32, qt, gtk2, . ). При начальной реализации бэкэндов никто особо не задумывался о размере исполняемых файлов и писал общие методы, в которых обращался ко всем классам фронтэнда.
Например, следующий код из модуля lcl\interfaces\win32\win32proc.pp тянет в исполняемый файл классы TCustomGroupBox, TCustomTabControl, даже если вы их нигде не используете:
if (TheWinControl is TCustomGroupBox) then
begin
.
end else
if TheWinControl is TCustomTabControl then
begin
.
end;
Решить эту проблему может рефакторинг, но он требует значительных усилий и времени, которые в условиях нехватки рук возможно лучше потратить на решение других проблем. Надо сказать, что определенные усилия в этом направлении были приложены 2 или 3 года назад, что позволило сократить размер пустого проекта с формой на 300Кб.
Утверждение: Lazarus ставил однажды в Windows, и запомнилось, что даже простейшая программа с окном и кнопкой компилируется ооочень долго.
Проблема была, когда FPC использовал GNU компоновщик для Windows. Но, в FPC 2.2 (а сейчас Lazarus использует FPC 2.6) проблема была устранена разработкой встроенного компоновщика для Windows. Кроме того, на тот момент компоновщик GNU не умел собирать под платформу Win64, что тоже послужило толчком к разработке собственного встроенного компоновщика. Надо заметить, что под Linux и Darwin таких проблем со скоростью сборки не было и нет (и как следствие до сих пор нет и собственного компоновщика под эти платформы).
Сейчас сборка и запуск пустого проекта с формой на моей машине занимает не более 2х секунд.
Вопрос: Здорово, если в Lazarus появится нормальный докинг, как в Delphi 2006, к примеру. Сильно повысит удобство интерфейса. Хотя, может быть, он там уже есть?
Докинг можно включить сборкой дополнительного пакета, но это делать не рекомендуется, так как пока присутствует ряд нерешенных проблем. К версии 1.2 докинг будет готов и скорее всего сразу встроен в среду.
Утверждение: «Mac OS X: 10.4, LCL только 32bit, не-LCL могут быть 64bit». Да уж, впечатляет.
Во-первых, имеется в виду, что Lazarus собирает проекты под Mac OS X не ниже версии 10.4. То есть поддерживаются и 10.5 и 10.6 и 10.7 и 10.8 (на которой у меня сейчас запущен Lazarus). LCL проекты могут быть только 32бит.
Это связано с тем, что на Max OS X существуют 2 основные системные библиотеки: carbon и cocoa. Carbon появилась первой и представляла собой библиотеку функций. Не было никаких проблем начать строить на ее основе LCL бэкэнд, что и было сделано. После Apple представил еще одну библиотеку cocoa, которая вместо функций содержит классы Objective-C. Позже Apple объявил, что не будет делать библиотеку carbon 64 разрядной, и вообще новые приложения надо разрабатывать только под cocoa.
Для взаимодействия с Objective-C классами в FPC был добавлен диалект, получивший название Objective-Pascal. В Lazarus был также добавлен бэкэнд для cocoa, но он в настоящее время находится в стадии ранней разработки. Возможно (я приложу к этому усилия), к версии 1.2 он будет на уровне бэкэнда под gtk2 и qt.