rev |
line source |
meillo@0
|
1 unit unit_Easteregg;
|
meillo@0
|
2
|
meillo@0
|
3 interface//####################################################################################
|
meillo@0
|
4
|
meillo@0
|
5 uses
|
meillo@0
|
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
meillo@0
|
7 Dialogs, jpeg, ExtCtrls;
|
meillo@0
|
8
|
meillo@0
|
9 type
|
meillo@0
|
10 Tform_easteregg = class(TForm)
|
meillo@0
|
11 img_Marmaro: TImage;
|
meillo@0
|
12 Timer1: TTimer;
|
meillo@0
|
13 procedure img_MarmaroClick(Sender: TObject);
|
meillo@0
|
14 procedure Timer1Timer(Sender: TObject);
|
meillo@0
|
15 procedure FormCreate(Sender: TObject);
|
meillo@0
|
16 private
|
meillo@0
|
17 vx : integer;
|
meillo@0
|
18 vy : integer;
|
meillo@0
|
19 x1 : integer;
|
meillo@0
|
20 y1 : integer;
|
meillo@0
|
21 x2 : integer;
|
meillo@0
|
22 y2 : integer;
|
meillo@0
|
23 public
|
meillo@0
|
24 { Public declarations }
|
meillo@0
|
25 end;
|
meillo@0
|
26
|
meillo@0
|
27 var
|
meillo@0
|
28 form_easteregg: Tform_easteregg;
|
meillo@0
|
29
|
meillo@0
|
30 implementation//###############################################################################
|
meillo@0
|
31
|
meillo@0
|
32 {$R *.dfm}//###################################################################################
|
meillo@0
|
33
|
meillo@0
|
34 //------------------------------------------------------------------------------ form create
|
meillo@0
|
35 procedure Tform_easteregg.FormCreate(Sender: TObject);
|
meillo@0
|
36 begin
|
meillo@0
|
37 vx := 0;
|
meillo@0
|
38 vy := 0;
|
meillo@0
|
39 x1 := form_Easteregg.Left + (form_Easteregg.Width div 2);
|
meillo@0
|
40 y1 := form_Easteregg.top + (form_Easteregg.height div 2);
|
meillo@0
|
41 x2 := screen.Width div 2;
|
meillo@0
|
42 y2 := screen.Height div 2;
|
meillo@0
|
43 end;//--------------------------------------------------------------------------
|
meillo@0
|
44
|
meillo@0
|
45 //#############################################################################################
|
meillo@0
|
46
|
meillo@0
|
47 //------------------------------------------------------------------------------ kill
|
meillo@0
|
48 procedure Tform_easteregg.img_MarmaroClick(Sender: TObject);
|
meillo@0
|
49 begin
|
meillo@0
|
50 application.Terminate;
|
meillo@0
|
51 end;//--------------------------------------------------------------------------
|
meillo@0
|
52
|
meillo@0
|
53 //------------------------------------------------------------------------------ move form
|
meillo@0
|
54 procedure Tform_easteregg.Timer1Timer(Sender: TObject);
|
meillo@0
|
55 begin
|
meillo@0
|
56 // keep window in foreground
|
meillo@0
|
57 SetWindowPos(handle, HWND_TopMost, left, top, width, height, SWP_ShowWindow);
|
meillo@0
|
58
|
meillo@0
|
59 randomize; // for better random
|
meillo@0
|
60
|
meillo@0
|
61 x1 := form_Easteregg.Left + (form_Easteregg.Width div 2);
|
meillo@0
|
62 y1 := form_Easteregg.top + (form_Easteregg.height div 2);
|
meillo@0
|
63
|
meillo@0
|
64 if x1 < x2 then
|
meillo@0
|
65 begin
|
meillo@0
|
66 vx := vx + (random(10)-4);
|
meillo@0
|
67 end
|
meillo@0
|
68 else
|
meillo@0
|
69 begin
|
meillo@0
|
70 vx := vx + (random(10)-6);
|
meillo@0
|
71 end;
|
meillo@0
|
72
|
meillo@0
|
73 if y1 < y2 then
|
meillo@0
|
74 begin
|
meillo@0
|
75 vy := vy + (random(10)-4);
|
meillo@0
|
76 end
|
meillo@0
|
77 else
|
meillo@0
|
78 begin
|
meillo@0
|
79 vy := vy + (random(10)-6);
|
meillo@0
|
80 end;
|
meillo@0
|
81
|
meillo@0
|
82 if (vx > 0) then form_easteregg.Left := form_easteregg.Left + (random(2)+1)
|
meillo@0
|
83 else form_easteregg.Left := form_easteregg.Left - (random(2)+1);
|
meillo@0
|
84
|
meillo@0
|
85 if (vy > 0) then form_easteregg.top := form_easteregg.top + (random(2)+1)
|
meillo@0
|
86 else form_easteregg.top := form_easteregg.top - (random(2)+1);
|
meillo@0
|
87
|
meillo@0
|
88 if form_easteregg.Left < 0 then form_Easteregg.left := 0;
|
meillo@0
|
89 if form_easteregg.Left > screen.Width - form_easteregg.Width then
|
meillo@0
|
90 form_Easteregg.Left := screen.Width - form_Easteregg.Width;
|
meillo@0
|
91 if form_easteregg.top < 0 then form_Easteregg.top := 0;
|
meillo@0
|
92 if form_easteregg.top > screen.Height - form_easteregg.height then
|
meillo@0
|
93 form_Easteregg.top := screen.Height - form_Easteregg.height;
|
meillo@0
|
94 end;//--------------------------------------------------------------------------
|
meillo@0
|
95
|
meillo@0
|
96
|
meillo@0
|
97 end.//########################################################################################
|