FpGUI

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.

Historie

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.

Nuværende tilstand

Eksempel på brug

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 // 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.

Links