lazarus-ccr/applications/fpvviewer/fpvv_drawer.pas
sekelsenmat a095cf0bb7 Forgotten file
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1493 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-02-11 07:01:02 +00:00

77 lines
1.2 KiB
ObjectPascal

unit fpvv_drawer;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Controls, Graphics, LCLType;
type
{ TFPVVDrawer }
TFPVVDrawer = class(TCustomControl)
public
PosX, PosY: Integer;
Drawing: TBitmap;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure EraseBackground(DC: HDC); override;
procedure Paint; override;
procedure HandleKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Clear;
end;
implementation
{ TFPVVDrawer }
constructor TFPVVDrawer.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Drawing := TBitmap.Create;
OnKeyDown := @HandleKeyDown;
end;
destructor TFPVVDrawer.Destroy;
begin
Drawing.Free;
inherited Destroy;
end;
procedure TFPVVDrawer.EraseBackground(DC: HDC);
begin
end;
procedure TFPVVDrawer.Paint;
begin
Canvas.Draw(PosX, PosY, Drawing);
// inherited Paint;
end;
procedure TFPVVDrawer.HandleKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_UP: Inc(PosY, 5);
VK_DOWN: Dec(PosY, 5);
VK_LEFT: Inc(PosX, 5);
VK_RIGHT: Dec(PosX, 5);
else
Exit;
end;
Invalidate();
end;
procedure TFPVVDrawer.Clear;
begin
PosX := 0;
PosY := 0;
end;
end.