FpGUI - FpGUI

fpGUI
Fpgui.png
Стабильный выпуск
v1.4.1 / 2 сентября 2015 г.; 5 лет назад (2015-09-02)
Предварительный выпуск
- / -
Репозиторий Отредактируйте это в Викиданных
Написано вObject Pascal
Операционная системаUnix /Linux /BSD (X11 ), Windows, OpenSolaris, Устройства ARM-Linux и WinCE.
ТипНабор инструментов для виджетов
ЛицензияLGPL с исключением статической ссылки
Интернет сайтfpgui.sourceforge.сеть

fpGUI, Free Pascal GUI инструментарий, это кросс-платформенный набор инструментов графического пользовательского интерфейса, разработанный Грэмом Гельденхейсом. fpGUI - это Открытый исходный код и бесплатно программное обеспечение, под лицензией Modified LGPL. Инструментарий реализован с использованием Free Pascal компилятор, то есть он написан в Object Pascal язык.

fpGUI состоит только из графических виджеты или компоненты, а также кроссплатформенную библиотеку 2D-чертежей. Он не реализует слои базы данных, трехмерную графику, синтаксические анализаторы XML и т.д. Он также не полагается на какие-либо огромные сторонние библиотеки, такие как GTK или Qt. Все дополнительные функции взяты прямо из того, что доступно в Free Pascal Component Library (FCL), которая входит в стандартную комплектацию Free Pascal компилятор.

История

Первая версия fpGUI была написана Себастьяном Гюнтером еще в 2000 году. Затем в 2002 году проект был заброшен. FpGUI был преемником более ранней оболочки OO GTK, fpGTK, и был в значительной степени новым началом, позволяющим использовать несколько (серверных) наборов виджетов, в первую очередь win32. Этот инструментарий использовался для некоторых внутренних инструментов FPC (например, для редактора fpdoc), но оставалось еще много нерешенных задач, прежде чем инструментарий стал действительно полезным и использовался конечными пользователями в реальных приложениях. Большинство этих инструментов были перенесены в зрелые Лазарь в период 2004-2006 гг.

Грэм Гелденхейс возродил инструментарий в середине 2006 года, когда Себастьян остановился. Он продолжил разработку инструментария на следующий год. Объединение трех подпроектов (fpGFX, fpIMG и fpGUI) в один проект fpGUI. Грэм увеличил количество компонентов и количество внутренних графических слоев, а также улучшил общий инструментарий. Поддерживаемые платформы на этом этапе были Linux и FreeBSD через X11 и Microsoft Windows через GDI. Через несколько месяцев к команде разработчиков присоединился Фелипе Монтейро де Карвалью, который добавил поддержку устройств Windows Mobile и расширил поддержку графики и дизайна. Фелипе также начал работать над поддержкой Mac OS X через Carbon.

В начале июня 2007 года Грэм обнаружил в исходной базе несколько серьезных проблем с дизайном. Это мешало fpGUI быть действительно полезным в реальных приложениях. После многочисленных прототипов проект fpGUI был полностью переписан. Прошлый опыт очень помог, были реализованы новые дизайнерские идеи. В итоге кодовая база стала намного проще с более чистым дизайном. Одним из основных изменений было то, что все виджеты теперь были основаны на мульти-дескрипторном (оконном) дизайне. У каждого виджета теперь есть дескриптор окна. Другие наборы инструментов GUI, которые следуют аналогичному дизайну: GTK, Xt и ФЛТК назвать несколько. Наборы инструментов GUI, которые следуют противоположному дизайну, являются наборами инструментов, подобными последним Qt[1] и MSEgui.

Пример программы

Следующая программа показывает одно окно с кнопкой «Выход» в правом нижнем углу. На холсте (фоне) окна он рисует все стандартные встроенные изображения, используемые с fpGUI.

программа stdimglist;{$ mode objfpc} {$ H +}использует  Классы, SysUtils,  fpg_base, fpg_main, fpg_form, fpg_imgfmt_bmp, fpg_button;тип  TMainForm = учебный класс(TfpgForm)  частный    btnClose: TfpgButton;    процедура   btnCloseClick(Отправитель: TObject);  защищенный    процедура   HandlePaint; отменять;  общественный    конструктор Создавать(владелец: TComponent); отменять;    процедура   AfterCreate; отменять;  конец;{TMainForm}процедура TMainForm.AfterCreate;начинать  SetPosition(100,100,700,500);  WindowTitle := 'Список стандартных изображений fpGUI';  // Поместите кнопку в нижний правый угол.  btnClose := CreateButton(себя, Ширина-90, Высота-35, 75, 'Покидать', @btnCloseClick);  btnClose.ImageName := 'stdimg.quit';  btnClose.Якоря := [anRight, внизу];конец;процедура TMainForm.btnCloseClick(Отправитель: TObject);начинать  Закрывать;конец;процедура TMainForm.HandlePaint;вар  п: целое число;  Икс: TfpgCoord;  у: TfpgCoord;  сл: TStringList;  img: TfpgImage;начинать  Холст.Начать рисовать; // начинаем двойную буферизацию  унаследованный HandlePaint;  сл  := TStringList.Создавать;  Икс   := 8;  у   := 8;  fpgImages.ListImages(сл);    за п := 0 к сл.Считать-1 делать  начинать    Холст.DrawString(Икс, у, сл[п]+':');        img := TfpgImage(сл.Объекты[п]);    если img <> ноль тогда      Холст.DrawImage(Икс+130, у, img);    inc(у, img.Высота+8);    если у > Высота-32 тогда // самые большие изображения 32 в высоту    начинать      inc(Икс, 200);      у := 8;    конец;  конец;  Холст.EndDraw;  сл.Свободный;конец;конструктор TMainForm.Создавать(владелец: TComponent);начинать  унаследованный Создавать(владелец);(* ДО v1.4:  // Поместите кнопку в нижний правый угол.  btnClose: = CreateButton (self, Ширина-90, Высота-35, 75, «Выйти», @btnCloseClick);  btnClose.ImageName: = 'stdimg.quit';  btnClose.Anchors: = [anRight, anBottom];*)конец;процедура MainProc;вар  от : TMainForm;начинать  fpgApplication.Инициализировать;  от := TMainForm.Создавать(ноль);  пытаться    от.Показать;    fpgApplication.Пробег;  наконец-то    от.Свободный;  конец;конец;начинать  MainProc;конец.

Вот снимок экрана вышеуказанной программы, запущенной под Linux.
Fpgui stdimglist.png

Лицензирование

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

Программное обеспечение, написанное с использованием fpGUI

  • Магистр математики
    Используется в компьютерной системе обучения. А также базовый пакет бухгалтерского учета и администрирования для франчайзи.
  • Визуальный конструктор форм, который теперь включен как часть fpGUI. Это позволяет разработчику создавать пользовательские интерфейсы гораздо быстрее.
  • Unimesur и различные инструменты
    Написанная Жаном-Марком программа Unimesur позволяет преобразовывать измерения потоков жидкостей и газов между единицами массы и объема. Все результаты были проверены на точность коэффициентов пересчета.
  • fpGUI DocView
    An Файл справки INF программа просмотра, которая в настоящее время работает в Windows,[2] Linux и FreeBSD. INF - это формат справки по умолчанию для fpGUI, а также формат справки, используемый в OS / 2 (а также eComStation и ArcaOS ).
  • Фреймворк для тестирования Free Pascal
    Кросс-платформенная среда модульного тестирования с консолью и средством запуска тестов с графическим интерфейсом.

Смотрите также

Рекомендации

  1. ^ «Блоги Trolltech Labs» Вторжение пришельцев в Qt - конец всякому мерцанию ». Архивировано из оригинал на 2010-03-03. Получено 2008-03-08.
  2. ^ В отличие от старых 16-битных IPF .inf/.hlp просмотрщики DocView можно использовать в 64-битной Windows

внешняя ссылка