Lt304888.ru

Туристические услуги

FpGUI

22-08-2023

fpGUI
Тип

Библиотека элементов интерфейса (виджетов)

Разработчик

Себастьян Гюнтер, Граеме Гелденхуис

Написана на

Object Pascal

Операционная система

Unix, Linux, BSD (X11), Windows

Последняя версия

0.8 (2 декабря 2011 года)

Лицензия

модифицированная GNU LGPL

Сайт

fpgui.sourceforge.net

fpGUI (сокр. от англ. Free Pascal GUI) — кроссплатформенный набор элементов управления графического интерфейса пользователя, разработанный Граеме Гелденхуисом. fpGUI является открытым и свободным программным обеспечением, выпущенным под модифицированной лицензией LGPL. fpGUI создан при помощи компилятора Free Pascal и написан на языке Object Pascal.

fpGUI состоит только из графических виджетов или компонентов и кроссплатформенной библиотеки двумерной отрисовки. В нём не реализованы уровни баз данных, трёхмерная графика, парсеры XML и т. д. Он так же не зависит от сторонних больших библиотек типа GTK или Qt. Все дополнительные возможности напрямую реализуют то, что доступно в библиотеке компонентов Free Pascal Component Library (FCL), которая является стандартной для компилятора Free Pascal.

Содержание

История

Первая версия fpGUI была написана Себастьяном Гюнтером в 2000 году, но к 2002 году проект забросили. fpGUI был преемником более ранней объектно-ориентированной обёртки для GTK, fpGTK, и был начат почти с нуля чтобы позволить множество наборов виджетов, наиболее известный win32. Набор элементов управления использовался для внутренних нужд, но было ещё много нерешённых проблем до того как тулкит смог бы быть полезным и использоваться в реальной жизни для разработки приложений конечными пользователями.

Текущее состояние

Пример использования

Приведённая ниже программа отображает одно окно с кнопкой «Quit» в правом нижнем углу. В окне изображены все стандартные встроенные рисунки, используемые в fpGUI.

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.

Результат работы вышеприведённой программы в Linux.

Лицензия

Ссылки

  • Официальный сайт
  • Страница fpGUI на SourceForge
  • Сайт компилятора Free Pascal
  • Сайт среды разработки Lazarus IDE
  • Обзор fpGUI в немецком журнале о программировании Toolbox 3-4/2008.
  • Обзор на еврейском языке http://idkn.wordpress.com/2008/05/20/fpgui/. You can view an English version of the review, using Google Translate. Simply enter the original URL and select Hebrew to English.

FpGUI.

© 2020–2023 lt304888.ru, Россия, Волжский, ул. Больничная 49, +7 (8443) 85-29-01