mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-08 07:21:34 +02:00
129 lines
3.7 KiB
ObjectPascal
129 lines
3.7 KiB
ObjectPascal
unit fonttest;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, Forms, Graphics;
|
|
|
|
type
|
|
|
|
{ TfrmFont }
|
|
|
|
TfrmFont = class(TForm)
|
|
procedure FormPaint(Sender: TObject);
|
|
private
|
|
|
|
public
|
|
|
|
end;
|
|
|
|
var
|
|
frmFont: TfrmFont;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TfrmFont }
|
|
|
|
procedure TfrmFont.FormPaint(Sender: TObject);
|
|
var
|
|
MyBitmap: TBitmap;
|
|
Angle: Integer;
|
|
begin
|
|
MyBitmap := TBitmap.Create;
|
|
try
|
|
{ Set a size for the image }
|
|
MyBitmap.Height := Height;
|
|
MyBitmap.Width := Width;
|
|
{ After memory has been reserved by setting the size
|
|
of the image, we can start drawing }
|
|
// Background
|
|
MyBitmap.Canvas.Brush.Color := clWhite;
|
|
MyBitmap.Canvas.Pen.Color := clWhite;
|
|
MyBitmap.Canvas.Rectangle(0, 0, Width, Height);
|
|
|
|
// Various rotated texts
|
|
MyBitmap.Canvas.Font.Size := 14;
|
|
MyBitmap.Canvas.Brush.Style := bsClear;
|
|
MyBitmap.Canvas.Font.Style := [fsUnderline];
|
|
MyBitmap.Canvas.TextOut(50, 25, 'Rotated texts:');
|
|
MyBitmap.Canvas.Font.Style := [];
|
|
|
|
Angle := 0;
|
|
while Angle < 360 do
|
|
begin
|
|
MyBitmap.Canvas.Font.Orientation := Angle * 10;
|
|
MyBitmap.Canvas.TextOut(75, 300, ' '
|
|
+ 'Font rotated by ' + IntToStr(Angle) + ' degrees');
|
|
if Angle = 100 then Angle := 260
|
|
else Angle := Angle + 20;
|
|
end;
|
|
|
|
// MyBitmap.Canvas.Brush.Style := bsSolid;
|
|
// MyBitmap.Canvas.Rectangle(245, 245, 255, 255);
|
|
|
|
// Different fonts
|
|
MyBitmap.Canvas.Font.Orientation := 0;
|
|
MyBitmap.Canvas.Font.Style := [fsUnderline];
|
|
MyBitmap.Canvas.TextOut(325, 25, 'Various fonts:');
|
|
MyBitmap.Canvas.Font.Style := [];
|
|
MyBitmap.Canvas.Font.Size := 16;
|
|
MyBitmap.Canvas.Font.Name := 'Arial';
|
|
MyBitmap.Canvas.TextOut(325, 60, 'Arial Font');
|
|
MyBitmap.Canvas.Font.Name := 'Times New Roman';
|
|
MyBitmap.Canvas.TextOut(325, 85, 'Timew New Roman Font');
|
|
MyBitmap.Canvas.Font.Name := 'Courier New';
|
|
MyBitmap.Canvas.TextOut(325, 110, 'Courier New Font');
|
|
MyBitmap.Canvas.Font.Name := 'Osaka';
|
|
MyBitmap.Canvas.TextOut(325, 135, 'ラザロクールだ! (Osaka Font)');
|
|
{ MyBitmap.Canvas.Font.Name := 'Courier New';
|
|
MyBitmap.Canvas.TextOut(325, 150, 'عربي');
|
|
MyBitmap.Canvas.Pen.Color := clRed;
|
|
MyBitmap.Canvas.Line(325, 135, 500, 135);
|
|
MyBitmap.Canvas.Line(325, 150, 500, 150);}
|
|
|
|
// Font sizes
|
|
MyBitmap.Canvas.Font.Orientation := 0;
|
|
MyBitmap.Canvas.Font.Size := 14;
|
|
MyBitmap.Canvas.Font.Style := [fsUnderline];
|
|
MyBitmap.Canvas.TextOut(325, 200, 'Font sizes:');
|
|
MyBitmap.Canvas.Font.Style := [];
|
|
MyBitmap.Canvas.Font.Name := 'Arial';
|
|
MyBitmap.Canvas.Font.Size := 8;
|
|
MyBitmap.Canvas.TextOut(325, 220, 'Size 8');
|
|
MyBitmap.Canvas.Font.Size := 12;
|
|
MyBitmap.Canvas.TextOut(325, 240, 'Size 12');
|
|
MyBitmap.Canvas.Font.Size := 16;
|
|
MyBitmap.Canvas.TextOut(325, 260, 'Size 16');
|
|
MyBitmap.Canvas.Font.Size := 20;
|
|
MyBitmap.Canvas.TextOut(325, 280, 'Size 20');
|
|
MyBitmap.Canvas.Font.Size := 30;
|
|
MyBitmap.Canvas.TextOut(325, 300, 'Size 30');
|
|
|
|
// Font styles
|
|
MyBitmap.Canvas.Font.Orientation := 0;
|
|
MyBitmap.Canvas.Font.Size := 14;
|
|
MyBitmap.Canvas.Font.Style := [fsUnderline];
|
|
MyBitmap.Canvas.TextOut(325, 350, 'Font styles:');
|
|
MyBitmap.Canvas.Font.Style := [fsBold];
|
|
MyBitmap.Canvas.TextOut(325, 375, 'fsBold');
|
|
MyBitmap.Canvas.Font.Style := [fsItalic];
|
|
MyBitmap.Canvas.TextOut(325, 400, 'fsItalic');
|
|
MyBitmap.Canvas.Font.Style := [fsStrikeOut];
|
|
MyBitmap.Canvas.TextOut(325, 425, 'fsStrikeOut');
|
|
MyBitmap.Canvas.Font.Style := [fsUnderline];
|
|
MyBitmap.Canvas.TextOut(325, 450, 'fsUnderline');
|
|
|
|
{ Draw the bitmap to the form }
|
|
Canvas.Draw(0, 0, MyBitmap);
|
|
finally
|
|
MyBitmap.Free;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|