fpGUI | |
---|---|
Type | Bibliotek med grænsefladeelementer (widgets) |
Udvikler | Sebastian Günther, Graeme Geldenhuis |
Skrevet i | Objekt Pascal |
Operativ system | Unix , Linux , BSD ( X11 ), Windows |
nyeste version | 1.4.1 (2. september 2015) |
Licens | modificeret GNU LGPL |
Internet side | fpgui.sourceforge.net |
fpGUI (forkortelse for engelsk Free Pascal GUI ) er et sæt GUI-kontroller på tværs af platforme udviklet af Graeme Geldenhuis. fpGUI er gratis software udgivet under en modificeret LGPL -licens . fpGUI er bygget med Free Pascal compiler og skrevet i Object Pascal sprog .
fpGUI består kun af grafiske widgets eller komponenter og et tværplatforms 2D-gengivelsesbibliotek. Den implementerer ikke databaselag, 3D-grafik, XML-parsere osv. Den er heller ikke afhængig af store tredjepartsbiblioteker som GTK eller Qt. Alle yderligere funktioner implementerer direkte, hvad der er tilgængeligt i Free Pascal Component Library (FCL), som er standard for Free Pascal-kompileren.
Den første version af fpGUI blev skrevet af Sebastian Günther i 2000, men i 2002 var projektet blevet opgivet. fpGUI var efterfølgeren til en tidligere objektorienteret wrapper til GTK, fpGTK, og blev startet næsten fra bunden for at give mulighed for mange widgetsets, især win32. Kontrolsættet blev brugt internt, men der var stadig mange uløste problemer, før værktøjskassen kunne bruges og bruges i det virkelige liv til applikationsudvikling af slutbrugere.
Programmet nedenfor viser et enkelt vindue med en Afslut-knap i nederste højre hjørne. Vinduet viser alle standard inline billeder, der bruges i fpGUI.
program stdimglist ; {$mode objfpc}{$H+} bruger Classes , SysUtils , fpg_base , fpg_main , fpg_form , fpg_imgfmt_bmp , fpg_button ; type TMainForm = klasse ( TfpgForm ) privat btnClose : TfpgButton ; procedure btnCloseClick ( Afsender : TObject ) ; beskyttet procedure HandlePaint ; tilsidesætte ; offentlig konstruktør Opret ( ejer : TComponent ) ; tilsidesætte ; procedure AfterCreate ; tilsidesætte ; ende ; { TMainForm } procedure TMainForm . AfterCreate ; start SetPosition ( 100 , 100 , 700 , 500 ) ; WindowTitle := 'fpGUI Standard Image Listing' ; ende ; procedure TMainForm . btnCloseClick ( Afsender : TObject ) ; begynde Luk ; ende ; procedure TMainForm . HandlePaint ; var n : heltal ; x : TfpgCoord ; y : TfpgCoord ; sl : TStringList ; img : TfpgImage ; begynde Canvas . StartDraw ; // start dobbelt buffering arvet HandlePaint ; sl := TStringList . skabe ; x := 8 ; y := 8 ; fpgBilleder . ListImages ( sl ) ; for n := 0 til sl . Count - 1 starter Canvas . _ DrawString ( x , y , sl [ n ] + ':' ) ; img := TfpgImage ( sl . Objekter [ n ] ) ; hvis img <> nul , så Canvas . DrawImage ( x + 130 , y , img ) ; inc ( y , img . Højde + 8 ) ; hvis y > Højde - 32 så // største billeder er 32 i højden start inc ( x , 200 ) ; y := 8 ; ende ; ende ; lærred . EndDraw ; sl . Gratis ; ende ; konstruktør TMainForm . Opret ( ejer : TComponent ) ; begynde nedarvet Opret ( ejer ) ; // Placer knappen i nederste højre hjørne. btnClose := CreateButton ( self , Width - 90 , Height - 35 , 75 , 'Quit' , @ btnCloseClick ) ; btnLuk . ImageName := 'stdimg.quit' ; btnLuk . Ankre := [ anHøjre , enBund ] ; ende ; procedure MainProc ; var frm : TMainForm ; start fpgApplication . Initialiser ; frm := TMainForm . Opret ( nul ) ; prøv frm . vise ; fpgApplikation . løbe ; endelig frm . Gratis ; ende ; ende ; start MainProc ; ende .Outputtet af ovenstående program i Linux.