fpGUI

fpGUI
fpGUI
Fpgui.png
안정된 릴리스
v1.4.1 / 2015년 9월 2일, 6년 전(2015-09-02)
프리뷰 릴리즈
- / -
저장소
기입처오브젝트 파스칼
운영 체제Unix/Linux/BSD(X11), Windows, OpenSolaris, ARM-Linux 및 WinCE 디바이스.
유형위젯 툴킷
면허증.LGPL(스태틱링크 예외 포함)
웹 사이트fpgui.sourceforge.그물

fpGUI, Free Pascal GUI 툴킷은 Graeme Geldenhuys가 개발한 크로스 플랫폼 그래피컬 사용자 인터페이스 툴킷입니다.fpGUI는 수정된 LGPL 라이센스로 라이센스가 부여된 오픈 소스무료 소프트웨어입니다.툴킷은 Free Pascal 컴파일러를 사용하여 구현되었습니다.즉, 오브젝트 파스칼 언어로 작성됩니다.

fpGUI는 그래픽 위젯 또는 컴포넌트와 크로스 플랫폼 2D 도면 라이브러리로만 구성됩니다.데이터베이스 레이어, 3D 그래픽스, XML 파서 등은 구현하지 않습니다.또한 GTK나 Qt와 같은 거대한 서드파티 라이브러리에도 의존하지 않습니다.모든 추가 정보는 Free Pascal 컴파일러에 표준으로 제공되는 Free Pascal Component Library(FCL)에서 제공됩니다.

역사

fpGUI의 첫 번째 버전은 2000년에 Sebastian Günther에 의해 작성되었습니다.그 후 2002년에 프로젝트가 포기되었습니다.fpGUI는 이전 OO GTK 래퍼인 fpGTK의 후속 제품으로, 특히 win32를 포함한 여러 개의 (백엔드) 위젯셋을 허용하는 거의 새로운 시작이었습니다.툴킷은 일부 내부 FPC 툴링(예: fpdoc 에디터)에 사용되었지만, 최종 사용자가 툴킷을 실제 애플리케이션에서 실제로 유용하고 사용하기까지는 아직 미해결된 것이 많이 있었습니다.이러한 툴의 대부분은 2004~2006년 사이에 성숙기의 Lazarus로 이행되었습니다.

Graeme Geldenhuys는 2006년 중반에 Sebastian이 중단한 툴킷을 부활시켰습니다.그는 다음 1년 동안 툴킷을 계속 개발했습니다.3개의 서브프로젝트(fpGFX, fpIMG, fpGUI)를 1개의 프로젝트 fpGUI로 통합.Graeme은 컴포넌트의 수와 백엔드 그래픽 레이어의 양을 확장하여 전체적인 툴킷을 개선했습니다.그 단계에서 지원되는 플랫폼은 LinuxFreeB였습니다.X11을 통한 SD와 GDI를 통한 Microsoft Windows. 몇 달 후 Felipe Monteiro de Carvalho는 개발팀에 합류하여 Windows Mobile 디바이스 지원을 추가하고 그래픽 지원 및 디자인을 확장했습니다.Felipe는 또한 Carbon을 통해 Mac OS X 지원에 대한 작업을 시작했습니다.

2007년 6월 초에 Graeme은 소스 기반에서 몇 가지 주요 설계 문제를 발견했습니다.이로 인해 실제 어플리케이션에서 fpGUI가 실제로 도움이 되지 않았습니다.수많은 프로토타입을 거쳐 fpGUI 프로젝트가 완전히 다시 작성되었습니다.과거의 경험이 많은 도움이 되었고 새로운 디자인 아이디어가 구현되었습니다.코드 베이스는 깔끔한 디자인으로 훨씬 심플해졌습니다.주요 변경 사항 중 하나는 이제 모든 위젯이 멀티 핸들(윈도우) 디자인을 기반으로 한다는 것입니다.이제 각 위젯에 창 핸들이 있습니다.비슷한 설계를 따르는 다른 GUI 툴킷으로는 GTK, XtFLTK가 있습니다.이와 반대되는 설계의 GUI 툴킷은 최신 Qt[1] MSEgui와 같은 툴킷입니다.

프로그램 예시

다음 프로그램에서는 오른쪽 하단에 "종료" 버튼이 있는 단일 창을 보여 줍니다.창의 캔버스(배경)에는 fpGUI에서 사용되는 모든 표준 내장 이미지가 그려집니다.

프로그램. 점멸하다;  {$mode objfpc}{$H+}  사용하다   , 시스템 유틸,   fpg_base, fpg_main, fpg_form, fpg_imgfmt_bmp, fpg_버튼;  유형    TMain Form(TMainForm) = 학급(Tfpg 폼)   사적인     btn닫기: Tfpg 버튼;     절차.   btn클릭(송신자: 토브젝트);   보호되고 있다     절차.   핸들 페인트; 덮어쓰다;   일반의     컨스트럭터 만들다(소유자: TC 컴포넌트); 덮어쓰다;     절차.   작성 후; 덮어쓰다;   끝.;  { TMain Form }  절차. TMain Form(TMainForm).작성 후; 시작한다.   위치 설정(100,100,700,500);   창 제목 := 'fpGUI 표준 이미지 목록';   // 오른쪽 하단에 버튼을 배치합니다.   btn닫기 := Create Button(작성 버튼)(자신, -90, 높이-35, 75, '종료, @btn클릭);   btn닫기.이미지명 := '어디서운'종료';   btn닫기.앵커 := [an right(오른쪽), 하의]; 끝.;  절차. TMain Form(TMainForm).btn클릭(송신자: 토브젝트); 시작한다.   가까운.; 끝.;  절차. TMain Form(TMainForm).핸들 페인트; 변화하다   n: 정수;   x: Tfpg Coord;   y: Tfpg Coord;   sl: TString 리스트;   img: Tfpg 이미지; 시작한다.   캔버스.BeginDraw; // 이중 버퍼링을 시작합니다.   상속된 핸들 페인트;    sl  := TString 리스트.만들다;   x   := 8;   y   := 8;   fpg 이미지.리스트 이미지(sl);      위해서 n := 0 로. sl.세어보세요-1 하다   시작한다.     캔버스.드로우 스트링(x, y, sl[n]+':');          img := Tfpg 이미지(sl.물건들[n]);     한다면 img << 고객명 >>님 제로 그리고나서       캔버스.그리기 이미지(x+130, y, img);      주식회사(y, img.높이+8);     한다면 y > 높이-32 그리고나서 // 가장 큰 이미지의 높이는 32입니다.     시작한다.       주식회사(x, 200);       y := 8;     끝.;   끝.;    캔버스.엔드 드로우;   sl.공짜; 끝.;  컨스트럭터 TMain Form(TMainForm).만들다(소유자: TC 컴포넌트); 시작한다.   상속된 만들다(소유자); (* v1.4 이전 버전: // 오른쪽 하단에 버튼을 배치합니다. btnClose : = CreateButton (self, Width-90, Height-35, 75, '종료', @btnCloseClick); btn닫다ImageName : = 'stdimg.종료'; btn닫다앵커 : = [ anRight, anBottom ]; *) 끝.;  절차. 메인프로세서; 변화하다   프레임 : TMain Form(TMainForm); 시작한다.   fpg 응용 프로그램.초기화;   프레임 := TMain Form(TMainForm).만들다(제로);   해라     프레임.표시;     fpg 응용 프로그램.달려.;   마침내.     프레임.공짜;   끝.; 끝.;  시작한다.   메인프로세서; 끝.. 

다음은 Linux에서 실행 중인 위의 프로그램의 스크린샷입니다.
Fpgui stdimglist.png

라이선스

fpGUI는 프로그램에 정적으로 링크되며 전용 프로그램에 정적으로 링크할 수 있도록 특별히 설계된 LGPL의 수정 버전을 사용하여 라이센스가 부여됩니다.사용할 수 있는 코드는 fpGUI 툴킷에 추가한 변경뿐입니다.그 이상은 아닙니다.

fpGUI로 작성된 소프트웨어

  • 수학 마스터
    컴퓨터 기반 교육 시스템에서 사용됩니다.가맹점주들을 위한 기본적인 회계 및 관리 패키지도 있습니다.
  • 이제 fpGUI의 일부로 포함된 Visual Form Designer입니다.이를 통해 개발자는 훨씬 더 빠른 속도로 사용자 인터페이스를 생성할 수 있습니다.
  • 유니머 및 각종 도구
    Jean-Marc가 작성한 Unimesur 프로그램은 질량 단위와 부피 단위 사이의 액체 및 가스 흐름 측정을 변환할 수 있습니다.모든 결과는 변환 계수의 정확성을 검증했습니다.
  • fpGUI DocView
    현재 Windows,[2] Linux 및 FreeBSD에서 작동하는 INF 도움말 파일 뷰어입니다.INF는 fpGUI의 기본 도움말 형식이며 OS/2(eComStationArcaOS도 포함)에서 사용되는 도움말 형식이기도 합니다.
  • 무료 Pascal 테스트 프레임워크
    콘솔 및 GUI 테스트 러너를 사용한 크로스 플랫폼 유닛 테스트 프레임워크.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Trolltech Labs Blogs » Qt Invaded By Aliens — The End of All Flicker". Archived from the original on 2010-03-03. Retrieved 2008-03-08.
  2. ^ 기존 16비트 IPF/.hlp뷰어와는 달리 DocView는 64비트 Windows에서 사용할 수 있습니다.

외부 링크