fpGUI

in Wikipedia, die vrye ensiklopedie
Spring na: navigasie, soek
fpGUI Toolkit
fpGUI Toolkit logo
Ontwikkelaar Graeme Geldenhuys
Aanvanklike vrystelling 2006; 8 jaar gelede (2006)
Mees onlangse weergawe v1.0/ 20 April 2013; 11 maande gelede (2013-04-20)
Programmeertaal Object Pascal
Bedryfstelsel Unix/Linux/BSD (X11), Windows, OpenSolaris, ARM-Linux en WinCE toestelle.
Kategorie Widget toolkit
Lisensie LGPL met statiese binding uitsondering
Webblad fpgui.sourceforge.net

Die Free Pascal GUI Toolkit (of meer algemene naam, fpGUI) is 'n kruisplatform grafiese ontwikkelings hulpmiddel wat ontwerp is deur Graeme Geldenhuys. fpGUI is vrye programmatuur of oopbron sagteware en is met 'n gemodifiseerde GNU Lesser General Public License (LGPL) gelisensieer. fpGUI is ontwikkel met die Free Pascal kompileerder wat beteken dat dit gebruik maak van the Object Pascal programmerings taal.

fpGUI bestaan net uit grafiese komponente en 'n kruisplatform 2D grafiese programmateek. Dit implementeer geen databasis laag, 3D grafika of XML parseerder 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 van saam met Free Pascal versprei word.

Geskiedenis[wysig]

Die eerste weergawe van fpGUI was 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 gebruikbaar 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 was Linux en FreeBSD deur middel van X11 (XLib), en Microsoft Windows deur middel van GDI. Na 'n paar maande het Felipe Monteiro de Carvalho die ontwikkeling span 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.

Voorbeeld Program[wysig]

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.


program stdimglist;
 
{$mode objfpc}{$H+}
 
uses
  Classes, SysUtils,
  fpg_base, fpg_main, fpg_form, fpg_imgfmt_bmp, fpg_button;
 
type
 
  TMainForm = class(TfpgForm)
  private
    btnClose: TfpgButton;
    procedure   btnCloseClick(Sender: TObject);
  protected
    procedure   HandlePaint; override;
  public
    constructor Create(aowner: TComponent); override;
    procedure   AfterCreate; override;
  end;
 
{ TMainForm }
 
procedure TMainForm.AfterCreate;
begin
  SetPosition(100,100,700,500);
  WindowTitle := 'fpGUI Standard Image Listing';
end;
 
procedure TMainForm.btnCloseClick(Sender: TObject);
begin
  Close;
end;
 
procedure TMainForm.HandlePaint;
var
  n: integer;
  x: TfpgCoord;
  y: TfpgCoord;
  sl: TStringList;
  img: TfpgImage;
begin
  Canvas.BeginDraw; // begin double buffering
  inherited HandlePaint;
 
  sl  := TStringList.Create;
  x   := 8;
  y   := 8;
  fpgImages.ListImages(sl);
 
  for n := 0 to sl.Count-1 do
  begin
    Canvas.DrawString(x, y, sl[n]+':');
 
    img := TfpgImage(sl.Objects[n]);
    if img <> nil then
      Canvas.DrawImage(x+130, y, img);
 
    inc(y, img.Height+8);
    if y > Height-32 then // largest images are 32 in height
    begin
      inc(x, 200);
      y := 8;
    end;
  end;
 
  Canvas.EndDraw;
  sl.Free;
end;
 
constructor TMainForm.Create(aowner: TComponent);
begin
  inherited Create(aowner);
  // 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;
 
procedure MainProc;
var
  frm: TMainForm;
begin
  fpgApplication.Initialize;
  frm := TMainForm.Create(nil);
  try
    frm.Show;
    fpgApplication.Run;
  finally
    frm.Free;
  end;
end;
 
begin
  MainProc;
end.

Hier is 'n skermkiekie van die bogenoemde program onder Linux.

Fpgui stdimglist.png

Lisensie[wysig]

fpGUI is staties gekoppel in programme en is gelisensieer met behulp van 'n aangepaste weergawe van LGPL v2, spesiaal ontwerp om statiese skakeling in eie programme toe te laat. Die enigste bronkode wat jy moet beskikbaar stel, is dié veranderings wat jy gemaak het in fpGUI Toolkit self - niks meer nie.

Sagteware wat gebruikmaak van fpGUI[wysig]

  • Master Maths
    fpGUI Toolkit is gebruik in hul rekenaar gebaseerde onderhoud stelsel, as ook in hul basiese boekhou en administratiewe program vir konsessiehouers. fpGUI het gemaak dat hul programme op verskeie bedryfstelsels kan werk.
  • 'n Visuele Skerm Ontwerper (uidesigner)[1]
    Hierdie program is nou deel van die fpGUI projek. Dit laat die ontwikkelaar toe om vinnig nuwe skerms te ontwikkel vir hul sagteware, sonder om sulke bronkode met die hand te skryf.
  • Unimesur en verskeie gereedskap
    Ontwikkel deur Jean-Marc. Die Unimesur program kan die omskakeling van metings en vloei van vloeistowwe en gasse, en die massa en volume-eenhede doen. Alle resultate is bevestig vir akkuraatheid.
  • fpGUI DocView[2]
    'n INF help-lêer kyker wat huidig op Windows, Linux en FreeBSD bedryfstelsels werk. INF is die standaard hulp formaat van fpGUI, en is ook die hulp formaat wat gebruik word in OS/2 en eComStation bedryfstelsels.
  • Free Pascal Toets Stelsel

Verwysings[wysig]

  • Hierdie artikel is aanvanklik saamgestel deur die Engelse weergawe van Wikipedia te gebruik as 'n beginpunt.