source: tags/1.0.0/Forms/UFormMain.pas

Last change on this file was 44, checked in by chronos, 6 years ago
  • Fixed: Removed compilation warnings.
  • Modified: Preparation for 1.0.0 version release.
File size: 3.4 KB
Line 
1unit UFormMain;
2
3{$mode delphi}{$H+}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
9 ExtCtrls, UEngine, LCLType, types;
10
11type
12
13 { TFormMain }
14
15 TFormMain = class(TForm)
16 PaintBox1: TPaintBox;
17 Timer1: TTimer;
18 procedure FormCreate(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 procedure FormKeyPress(Sender: TObject; var Key: char);
21 procedure FormShow(Sender: TObject);
22 procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
23 Shift: TShiftState; X, Y: Integer);
24 procedure PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
25 Y: Integer);
26 procedure PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
27 Shift: TShiftState; X, Y: Integer);
28 procedure PaintBox1MouseWheelDown(Sender: TObject; Shift: TShiftState;
29 MousePos: TPoint; var Handled: Boolean);
30 procedure PaintBox1MouseWheelUp(Sender: TObject; Shift: TShiftState;
31 MousePos: TPoint; var Handled: Boolean);
32 procedure PaintBox1Paint(Sender: TObject);
33 procedure PaintBox1Resize(Sender: TObject);
34 procedure Timer1Timer(Sender: TObject);
35 public
36 Engine: TEngine;
37 procedure EraseBackground(DC: HDC); override;
38 end;
39
40var
41 FormMain: TFormMain;
42
43implementation
44
45{$R *.lfm}
46
47uses
48 UFormImages;
49
50{ TFormMain }
51
52procedure TFormMain.FormCreate(Sender: TObject);
53begin
54 Engine := TEngine.Create;
55 //PaintBox1.ControlStyle := [csOpaque];
56end;
57
58procedure TFormMain.FormDestroy(Sender: TObject);
59begin
60 Engine.Free;
61end;
62
63procedure TFormMain.FormKeyPress(Sender: TObject; var Key: char);
64begin
65 if (Key = #32) then begin
66 if Engine.State = gsRunning then Engine.State := gsPaused
67 else if Engine.State = gsPaused then Engine.State := gsRunning;
68 end;
69end;
70
71procedure TFormMain.FormShow(Sender: TObject);
72begin
73 Randomize;
74 Engine.ImagePassenger.Picture.Assign(FormImages.ImagePassenger.Picture);
75 Engine.ImageLocomotive.Picture.Assign(FormImages.ImageLocomotive.Picture);
76 Engine.Map.Size := Point(PaintBox1.Width, PaintBox1.Height);
77 Engine.View.DestRect := Rect(0, 0, PaintBox1.Width, PaintBox1.Height);
78 Engine.Reset;
79end;
80
81procedure TFormMain.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
82 Shift: TShiftState; X, Y: Integer);
83begin
84 Engine.MouseDown(Button, Point(X, Y));
85end;
86
87procedure TFormMain.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
88 Y: Integer);
89begin
90 Engine.MouseMove(Point(X, Y));
91end;
92
93procedure TFormMain.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
94 Shift: TShiftState; X, Y: Integer);
95begin
96 Engine.MouseUp(Button, Point(X, Y));
97end;
98
99procedure TFormMain.PaintBox1MouseWheelDown(Sender: TObject;
100 Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
101begin
102 Engine.View.Zoom := Engine.View.Zoom * 1.2;
103end;
104
105procedure TFormMain.PaintBox1MouseWheelUp(Sender: TObject; Shift: TShiftState;
106 MousePos: TPoint; var Handled: Boolean);
107begin
108 Engine.View.Zoom := Engine.View.Zoom / 1.2;
109end;
110
111procedure TFormMain.PaintBox1Paint(Sender: TObject);
112begin
113 Engine.View.DestRect := Rect(0, 0, PaintBox1.Width, PaintBox1.Height);
114 Engine.Paint(PaintBox1.Canvas);
115end;
116
117procedure TFormMain.PaintBox1Resize(Sender: TObject);
118begin
119 Engine.Redraw;
120end;
121
122procedure TFormMain.Timer1Timer(Sender: TObject);
123begin
124 Engine.Tick;
125 if Engine.RedrawPending then
126 PaintBox1.Repaint;
127end;
128
129procedure TFormMain.EraseBackground(DC: HDC);
130begin
131 // Do nothing, all background space covered by controls
132end;
133
134end.
135
Note: See TracBrowser for help on using the repository browser.