Hierdie artikel is 'nweesbladsy. Dit is niegeskakel of in ander bladsye ingesluit nie. Help Wikipedia deur na moontlike teks tesoek en 'n skakel hierheen te plaas. |
fpGUI Toolkit | |
![]() | |
Ontwikkelaar | Graeme Geldenhuys |
---|---|
Aanvanklike vrystelling | 2006; 19 jaar gelede (2006) |
Nuutste weergawe | v1.4.1/ 2 September 2015; 9 jaar gelede (2015-09-02) |
Programmeertaal | Object Pascal |
Bedryfstelsel | Unix/Linux/BSD (X11),Windows, OpenSolaris, ARM-Linux en WinCE toestelle. |
Kategorie | Widget toolkit |
Lisensie | LGPL met uitsondering vir statiese binding |
Webblad | fpgui.sourceforge.net |
DieFree Pascal GUI Toolkit (of meer algemene naam, fpGUI) is 'n kruisplatform grafiese ontwikkelingshulpmiddel wat ontwerp is deur Graeme Geldenhuys. fpGUI isvry sagteware enoopbronsagteware en is met 'n gemodifiseerdeGNU Lesser General Public License (LGPL) gelisensieer. fpGUI is ontwikkel met dieFree Pascal kompileerder wat beteken dat dit gebruik maak van dieObject Pascal programmeertaal.
fpGUI bestaan net uit grafiese komponente en 'n kruisplatform 2D grafiese programmateek. Dit implementeer geen databasislaag, 3D grafika of XML-ontleder nie. Dit maak ook nie staat op enige groot derde-party programmateek, soos GTK of QT nie. Al die ekstra funksies kom direk van Free Pascal af, deur gebruik te maak van die RTL en FCL wat saam met Free Pascal versprei word.
Die eerste weergawe van fpGUI is geskyf deur Sebastian Günther in 2000. Dit is toe later in 2002 afgelas. Daar was nog baie funksies uitstaande in fpGUI voordat die werklik bruikbaar kon wees.
Graeme Geldenhuys het die projek in die middel van 2006 weer begin waar Sebastian jare vroeër opgehou het. Hy het voortgegaan met die ontwikkeling van fpGUI vir die volgende jaar. Drie sub-projekte (fpGFX, fpIMG en fpGUI) is gekombineer in 'n enkele projek: fpGUI. Graeme het die hoeveelheid komponente heelwat vermeerder en die grafiese laag baie verbeter. Die ondersteunde platforms op daardie stadium wasLinux enFreeBSD deur middel van X11 (XLib), en Microsoft Windows deur middel van GDI. Na 'n paar maande het Felipe Monteiro de Carvalho die ontwikkelingspan begin help vir ondersteuning met die Windows CE platform, en die uitbreiding van die grafiese ondersteuning en ontwerp. Felipe het ook begin werk op Mac OS X-ondersteuning deur middel van Carbon, maar niks het daarvan gekom nie.
Die volgende program toon 'n venster met' n "Sluit"-knoppie in die regter onderste hoek. Op die agtergrond van die venster is al die standaard ingeboude beelde geverf. Hierdie beelde is beskikbaar in enige fpGUI-gebaseerde program.
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';// 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;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);(* PRIOR TO v1.4: // 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.
Hier is 'n skermkiekie van die bogenoemde program onderLinux.
fpGUI word staties gekoppel in programme en is gelisensieer met behulp van 'n aangepaste weergawe vanLGPL v2, spesiaal ontwerp om statiese koppeling in eie programme toe te laat. Die enigste bronkode wat mens beskikbaar moet stel, is dié veranderings wat jy gemaak het in fpGUI Toolkit self - niks meer nie.