fpGUI | |
---|---|
Tipo de | Biblioteca de elementos de interfaz (widgets) |
Desarrollador | Sebastián Günther, Graeme Geldenhuis |
Escrito en | Objeto Pascual |
Sistema operativo | Unix , Linux , BSD ( X11 ), Windows |
ultima versión | 1.4.1 (2 de septiembre de 2015) |
Licencia | modificado GNU LGPL |
Sitio web | fpgui.sourceforge.net |
fpGUI (abreviatura de English Free Pascal GUI ) es un conjunto multiplataforma de controles GUI desarrollado por Graeme Geldenhuis. fpGUI es un software gratuito publicado bajo una licencia LGPL modificada . fpGUI está construido con el compilador Free Pascal y escrito en lenguaje Object Pascal .
fpGUI consta solo de widgets o componentes gráficos y una biblioteca de renderizado 2D multiplataforma. No implementa capas de base de datos, gráficos 3D, analizadores XML, etc. Tampoco depende de grandes bibliotecas de terceros como GTK o Qt. Todas las funciones adicionales implementan directamente lo que está disponible en la biblioteca de componentes de Free Pascal (FCL), que es estándar para el compilador de Free Pascal.
La primera versión de fpGUI fue escrita por Sebastian Günther en 2000, pero en 2002 el proyecto había sido abandonado. fpGUI fue el sucesor de un envoltorio orientado a objetos anterior para GTK, fpGTK, y se inició casi desde cero para permitir muchos conjuntos de widgets, sobre todo win32. El conjunto de control se usó internamente, pero todavía había muchos problemas sin resolver antes de que el kit de herramientas pudiera ser útil y utilizado en la vida real para el desarrollo de aplicaciones por parte de los usuarios finales.
El siguiente programa muestra una sola ventana con un botón Salir en la esquina inferior derecha. La ventana muestra todas las imágenes en línea estándar utilizadas en fpGUI.
programa stdimglist ; {$objfpc modo}{$H+} utiliza clases , SysUtils , fpg_base , fpg_main , fpg_form , fpg_imgfmt_bmp , fpg_button ; escribe TMainForm = clase ( TfpgForm ) privado btnClose : TfpgButton ; procedimiento btnCloseClick ( Remitente : TObject ) ; procedimiento protegido HandlePaint ; anular ; constructor público Create ( propietario : TComponent ) ; anular ; procedimiento AfterCreate ; anular ; fin ; { TMainForm } procedimiento TMainForm . Después de crear ; comenzar SetPosition ( 100 , 100 , 700 , 500 ) ; WindowTitle := 'fpGUI Standard Image Listing' ; fin ; procedimiento TMainForm . btnCloseClick ( Remitente : TObject ) ; comenzar Cerrar ; fin ; procedimiento TMainForm . ManejarPintura ; varn : entero ; _ x : TfpgCoord ; y : TfpgCoord ; sl : TStringList ; img : Imagen Tfpg ; comenzar lienzo . ComenzarDibujo ; // comienza el almacenamiento en búfer doble handlePaint heredado ; sl := TStringList . crear ; x := 8 ; y := 8 ; fpgImages . ListImages ( sl ) ; para n := 0 a sl . Count - 1 comienza Canvas . _ DrawString ( x , y , sl [ n ] + ':' ) ; img := TfpgImage ( sl . Objetos [ n ]) ; si img <> nil entonces Canvas . DibujarImagen ( x + 130 , y , img ) ; inc ( y , img . Altura + 8 ) ; si y > Height - 32 entonces // las imágenes más grandes tienen 32 de alto begin inc ( x , 200 ) ; y := 8 ; fin ; fin ; lona _ FinDraw ; sl _ Gratis ; fin ; constructor TMainForm . Crear ( propietario : TComponent ) ; comenzar heredado Crear ( propietario ) ; // Coloque el botón en la esquina inferior derecha. btnClose : = CreateButton ( self , Width - 90 , Height - 35 , 75 , 'Quit' , @btnCloseClick ) ; btnCerrar . Nombre de imagen : = 'stdimg.quit' ; btnCerrar . Anchors := [ unaDerecha , unaInferior ] ; fin ; procedimiento MainProc ; var desde : TMainForm ; comenzar fpgApplication . inicializar ; frm := TMainForm . Crear ( nulo ) ; prueba desde . mostrar ; aplicación fpg . correr ; finalmente de . Gratis ; fin ; fin ; comenzar MainProc ; fin _La salida del programa anterior en Linux.