FpGUI

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.

Historik

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.

Nuvarande tillstånd

Användningsexempel

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

Länkar