FGFW5: Delphi Version
{*****************************************************************************
* *
* FGFW5.dpr *
* FGFW5U.pas *
* *
* Demonstrate how to display centered text within a rectangle. *
* *
*****************************************************************************}
unit Fgfw5u;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, FGWin, FGFWin;
type
TForm1 = class(TForm)
procedure AppOnActivate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormDestroy(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
var
dc : hDC;
hPal : hPalette;
hVB : integer;
cxClient, cyClient : integer;
procedure TForm1.AppOnActivate(Sender: TObject);
begin
fg_realize(hPal);
Invalidate;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
fg_realize(hPal);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
dx, dy : integer;
xMid, yMid : integer;
MessageText : string;
begin
dc := GetDC(Form1.Handle);
fg_setdc(dc);
hPal := fg_defpal;
fg_realize(hPal);
fg_vbinit;
hVB := fg_vballoc(640,480);
fg_vbopen(hVB);
fg_vbcolors;
if fgf_load('AUSTIN36.FGF'+chr(0)) = 0 then
begin
MessageDlg('Unable to load font file.',mtError,[mbOK],0);
Close;
Exit;
end;
fg_setcolor(255);
fg_fillpage;
xMid := fg_getmaxx div 2;
yMid := fg_getmaxy div 2;
MessageText := 'TEXT IN A BOX';
dx := fgf_width(MessageText,13) div 2 + 4;
dy := fgf_height(MessageText,13) div 2 + 4;
fg_setcolor(17);
fg_rect(xMid-dx,xMid+dx,yMid-dy,yMid+dy);
fg_setcolor(20);
fg_move(xMid,yMid);
fgf_justify(0,0);
fgf_print(MessageText,13);
Application.OnActivate := AppOnActivate;
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
fg_vbscale(0,fg_getmaxx,0,fg_getmaxy,0,cxClient-1,0,cyClient-1);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
cxClient := ClientWidth;
cyClient := ClientHeight;
Invalidate;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
fgf_unload(-1);
fg_vbclose;
fg_vbfree(hVB);
fg_vbfin;
DeleteObject(hPal);
ReleaseDC(Form1.Handle,dc);
end;
end.
|