FpGUI - FpGUI
Стабильный выпуск | v1.4.1 / 2 сентября 2015 г. |
---|---|
Предварительный выпуск | - / - |
Репозиторий | |
Написано в | Object Pascal |
Операционная система | Unix /Linux /BSD (X11 ), Windows, OpenSolaris, Устройства ARM-Linux и WinCE. |
Тип | Набор инструментов для виджетов |
Лицензия | LGPL с исключением статической ссылки |
Интернет сайт | fpgui |
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 статически связан с программами и лицензируется с использованием модифицированной версии LGPL, специально разработанной для статического связывания с проприетарными программами. Единственный код, который вам нужно сделать доступным, - это любые изменения, которые вы внесли в инструментарий fpGUI - не более того.
Программное обеспечение, написанное с использованием fpGUI
- Магистр математики
Используется в компьютерной системе обучения. А также базовый пакет бухгалтерского учета и администрирования для франчайзи. - Визуальный конструктор форм, который теперь включен как часть fpGUI. Это позволяет разработчику создавать пользовательские интерфейсы гораздо быстрее.
- Unimesur и различные инструменты
Написанная Жаном-Марком программа Unimesur позволяет преобразовывать измерения потоков жидкостей и газов между единицами массы и объема. Все результаты были проверены на точность коэффициентов пересчета. - fpGUI DocView
An Файл справки INF программа просмотра, которая в настоящее время работает в Windows,[2] Linux и FreeBSD. INF - это формат справки по умолчанию для fpGUI, а также формат справки, используемый в OS / 2 (а также eComStation и ArcaOS ). - Фреймворк для тестирования Free Pascal
Кросс-платформенная среда модульного тестирования с консолью и средством запуска тестов с графическим интерфейсом.
Смотрите также
- Lazarus (программное обеспечение)
- Набор инструментов для виджетов
- Qt
- wxWidgets
- GTK +
- Набор инструментов FOX
- ФЛТК
Рекомендации
- ^ «Блоги Trolltech Labs» Вторжение пришельцев в Qt - конец всякому мерцанию ». Архивировано из оригинал на 2010-03-03. Получено 2008-03-08.
- ^ В отличие от старых 16-битных IPF
.inf
/.hlp
просмотрщики DocView можно использовать в 64-битной Windows