fpGUI | |
---|---|
Sorts | Bibliotek med gränssnittselement (widgets) |
Utvecklaren | Sebastian Günther, Graeme Geldenhuis |
Skrivet i | Objekt Pascal |
Operativ system | Unix , Linux , BSD ( X11 ), Windows |
senaste versionen | 1.4.1 (2 september 2015) |
Licens | modifierad GNU LGPL |
Hemsida | fpgui.sourceforge.net |
fpGUI (förkortning för engelska Free Pascal GUI ) är en plattformsoberoende uppsättning GUI-kontroller utvecklade av Graeme Geldenhuis. fpGUI är fri programvara som släpps under en modifierad LGPL -licens . fpGUI är byggt med Free Pascal-kompilator och skrivet på Object Pascal-språket .
fpGUI består endast av grafiska widgets eller komponenter och ett plattformsoberoende 2D-renderingsbibliotek. Det implementerar inte databaslager, 3D-grafik, XML-tolkare, etc. Det är inte heller beroende av tredje parts stora bibliotek som GTK eller Qt. Alla ytterligare funktioner implementerar direkt det som är tillgängligt i Free Pascal Component Library (FCL), som är standard för Free Pascal-kompilatorn.
Den första versionen av fpGUI skrevs av Sebastian Günther 2000, men 2002 hade projektet övergetts. fpGUI var efterföljaren till en tidigare objektorienterad wrapper för GTK, fpGTK, och startades nästan från början för att möjliggöra många widgetset, framför allt win32. Kontrolluppsättningen användes internt, men det fanns fortfarande många olösta problem innan verktygslådan kunde vara användbar och användas i verkligheten för applikationsutveckling av slutanvändare.
Programmet nedan visar ett enda fönster med en Avsluta-knapp i det nedre högra hörnet. Fönstret visar alla vanliga inline-bilder som används i fpGUI.
program stdimglist ; {$mode objfpc}{$H+} använder Classes , SysUtils , fpg_base , fpg_main , fpg_form , fpg_imgfmt_bmp , fpg_button ; typ TMainForm = klass ( TfpgForm ) privat btnClose : TfpgButton ; procedur btnCloseClick ( Avsändare : TObject ) ; skyddad procedur HandlePaint ; åsidosätta ; offentlig konstruktör Skapa ( ägare : TComponent ) ; åsidosätta ; procedur AfterCreate ; åsidosätta ; slut ; { TMainForm } procedur TMainForm . AfterCreate ; börja SetPosition ( 100 , 100 , 700 , 500 ) ; WindowTitle := 'fpGUI Standard Image Listing' ; slut ; procedur TMainForm . btnCloseClick ( Avsändare : TObject ) ; börja Stäng ; slut ; procedur TMainForm . HandlePaint ; var n : heltal ; x : TfpgCoord ; y : TfpgCoord ; sl : TStringList ; img : TfpgImage ; börja Canvas . BeginDraw ; // börja dubbelbuffra ärvt HandlePaint ; sl := TStringList . skapa ; x := 8 ; y := 8 ; fpgImages . ListImages ( sl ) ; för n := 0 till sl . Count - 1 börjar Canvas . _ DrawString ( x , y , sl [ n ] + ':' ) ; img := TfpgImage ( sl . Objekt [ n ] ) ; om img <> noll så Canvas . DrawImage ( x + 130 , y , img ) ; inc ( y , bild . Höjd + 8 ) ; om y > Höjd - 32 är // största bilderna 32 i höjd börjar inc ( x , 200 ) ; y := 8 ; slut ; slut ; duk . EndDraw ; sl . Gratis ; slut ; konstruktör TMainForm . Skapa ( ägare : TComponent ) ; börja ärvt Skapa ( ägare ) ; // Placera knappen i nedre högra hörnet. btnClose := CreateButton ( self , Width - 90 , Height - 35 , 75 , 'Quit' , @ btnCloseClick ) ; btnStäng . ImageName := 'stdimg.quit' ; btnStäng . Anchors := [ anRight , an Bottom ] ; slut ; procedur MainProc ; var frm : TMainForm ; börja fpgApplication . Initiera ; frm := TMainForm . Skapa ( noll ) ; prova frm . visa ; fpgApplication . springa ; slutligen frm . Gratis ; slut ; slut ; börja MainProc ; slut .Utdata från ovanstående program i Linux.