FpGUI - Free Pascal и X-приложения

Материал из Mageia Russian Community Wiki
Перейти к: навигация, поиск

Существует несколько способов написать программу на Free Pascal, используя для отрисовки её интерфейса только иксовые библиотеки: MSEide+MSEgui, fpGUI. Это позволяет не зависеть от gtk, qt, а только от иксов.

В этой статье рассмотрим fpGUI. Нам потребуется установить пакеты: uidesigner (пакет fpgui установится автоматически), geany.

Теперь запустите uidesigner и в нём создайте интерфейс Вашей программы:

Файл(File) -> Создать новый файл...(Create New File...):

Fpgui1.png

Назовём его по умолчанию, для этого поле для ввода оставим пустым и нажмём ОК:

Fpgui2.png

Появится форма. К примеру, если нам надо поместить на неё кнопку:

Fpgui3.png

Теперь сохраним полученную в uidesigner форму:

Файл(File) -> Сохранить(Save):

Fpgui5.png

Укажем где и под каким именем сохранить. Сохраним под именем form1_primer1 в директории /home/user/fpgui:

Fpgui4.png

Теперь можно закрыть uidesigner.

Запустите geany и в нём откройте получившийся файл /home/user/fpgui/form1_primer1.pas. Нажмите на кнопку "Скомпилировать":

Fpgui6.png

Вы можете получить ошибку:

Fpgui7.png

Для этой конкретной ошибки нужно добавить в секцию uses модуль fpg_button, после чего компиляция проходит нормально (это ошибка http://sourceforge.net/p/fpgui/bugs/12):

Fpgui8.png

Info-wiki-template.png
Примечание
В пакете uidesigner для Mageia эта ошибка была исправлена, компиляция проходит успешно.

Теперь осталось написать стандартную программу, которая будет использовать модуль form1_primer1. В geany создайте новый файл следующего содержания:

{$mode objfpc}{$H+}
Program primer1;
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Classes, fpg_main, 
  form1_primer1;
var
  MainForm: TForm1;
begin
  fpgApplication.Initialize;
  MainForm:=TForm1.Create(nil);
  MainForm.Show;
  fpgApplication.Run;
  MainForm.Free;
  fpgApplication.Terminate;
end.

И сохраните его под именем primer1.pas в той же директории /home/user/fpgui:

Fpgui9.png

Нажмите кнопку "Скомпилировать". Если компиляция прошла успешно, то нажмите кнопку "Выполнить":

Fpgui10.png

Подробнее:

http://www.freepascal.ru/article/raznoe/20130218102100

http://ru.wikipedia.org/wiki/FpGUI (пример по этой ссылке можно легко выполнить в geany)

Об MSEide+MSEgui: MSEide+MSEgui - Free Pascal и X-приложения