fpGUI, Free Pascalграфички алат, је мултиплатформа алатке графичког корисничког интерфејса дизајнирана од стране Graeme Geldenhuys.. fpGUI јеотвореног кода (open source) ибесплатна је, лиценциран од стране Modified LGPL license. Алат је реализован уз помоћ компајлераFree Pascala , а то значи да је написано уОбјектном Пасаклу.
fpGUI се састоји само од графичких додатака или компоненти, и мултиплатформе библиотеке за 2Д цртање. Не имплементирабазу података, 3D графику,XML анализаторе итд. Такође, не ослања се на огромне независне датотеке као што су GTK или Qt. Сви додаци долазе директно из онога што је доступно у Free Pasccal Comoponent библиотеци (ФЦЛ) која је стандардна библиотека уFree Pascalu.
Прва верзија fpGUI написана је од стране Себастијан Гинтер још у 2000. години. Пројекат је тада био напуштен у 2002. години. fpGUI је наследник ранијег OO GTK wrapper-а, fpGTK, и био је то нов почетак да се дозволе вишеструки (бекхенд) је прилично много да дозволи више (позадина) widgetsets, посебно за Win32. Алат је коришћен за неке унутрашње FPC радње са алатом (на пример, fpdoc едитор), али ту је било још много тога што је стварно користило крајњим корисницима апликација. Већина ових алата, су досељени у Lazarus у року 2004-2006. год
Graeme Geldenhuys оживео је алат средином 2006. године, када је Себастијан завршио. Он је наставио развој алата за наредну годину. Спајање три подпројекта (fpGFX, fpIMG и fpGUI) у јединствени пројекат fpGUI. Graeme је проширио број компоненти и број бекхенд графичких слојева и побољшао алат уопштено. Подржане платформе у овој фази су билеЛинукс иFreeBSD крозХ11 и Мајкрософт Виндоус кроз GDI. Кроз неколико месеци Felipe Monteiro de Carvalho се придружио тиму програмера да додају подршку за Виндоус мобилни уређај и прошире графичку подршку и дизајн. Фелипе је такође почео да ради наMac OS X подршци кроз Carbon.
Почетком јуна 2007. године Грахам је нашао нека велике проблеме пројектовања у кодној бази. То је спречило fpGUI бити истински корисна у реалним апликацијама. Након бројних прототипова fpGUI пројекат је у потпуности преписан. Досадашња искуства су помогла пуно и нове дизајнерске идеје су реализоване. Код базе је био много једноставнији са чистијим дизајном. Једна од великих промена јесте да су сада сви додаци засновани на дизајну multi-handle. Сваки додатака сада има свој посебни прозор у коме се налази. Други ГУИ алати који имају сличан дизајн суGTK, Хt и FLTK . ГУИ алати који имају другачији и супротан дизајн суQT[1] и MSEgui.
Следећа програм приказује један прозор са дугметом "излаз" у доњем десном углу. На платну (позадина) прозора боји све стандардне уграђене слике који се користе са fpGUI.
programstdimglist;{$mode objfpc}{$H+}usesClasses,SysUtils,fpg_base,fpg_main,fpg_form,fpg_imgfmt_bmp,fpg_button;typeTMainForm=class(TfpgForm)privatebtnClose:TfpgButton;procedurebtnCloseClick(Sender:TObject);protectedprocedureHandlePaint;override;publicconstructorCreate(aowner:TComponent);override;procedureAfterCreate;override;end;{ TMainForm }procedureTMainForm.AfterCreate;beginSetPosition(100,100,700,500);WindowTitle:='fpGUI Standard Image Listing';end;procedureTMainForm.btnCloseClick(Sender:TObject);beginClose;end;procedureTMainForm.HandlePaint;varn:integer;x:TfpgCoord;y:TfpgCoord;sl:TStringList;img:TfpgImage;beginCanvas.BeginDraw;// begin double bufferinginheritedHandlePaint;sl:=TStringList.Create;x:=8;y:=8;fpgImages.ListImages(sl);forn:=0tosl.Count-1dobeginCanvas.DrawString(x,y,sl[n]+':');img:=TfpgImage(sl.Objects[n]);ifimg<>nilthenCanvas.DrawImage(x+130,y,img);inc(y,img.Height+8);ify>Height-32then// largest images are 32 in heightbegininc(x,200);y:=8;end;end;Canvas.EndDraw;sl.Free;end;constructorTMainForm.Create(aowner:TComponent);begininheritedCreate(aowner);// Place button in bottom right corner.btnClose:=CreateButton(self,Width-90,Height-35,75,'Quit',@btnCloseClick);btnClose.ImageName:='stdimg.quit';btnClose.Anchors:=[anRight,anBottom];end;procedureMainProc;varfrm:TMainForm;beginfpgApplication.Initialize;frm:=TMainForm.Create(nil);tryfrm.Show;fpgApplication.Run;finallyfrm.Free;end;end;beginMainProc;end.
Ово је слика програма изнад, када се покрене у Linux-у.
fpGUI је статично повезан у програмере и лиценциран је користећи модификовану верзију LGPL специјално дизајнирану да дозволи статичко повезивање са власничким програмима. Једина код које треба учинити доступним било какве промене које направите у алату fpGUI - ништа више.
.рсмд
/.гву
прегледача DocView може да се користи 64-битну верзију Windows</ref> Linux и FreeBSD. Inf је подразумевани помоћни формат fpGUI-а, а такође користи помоћни формат који се користи уОС/2.