cdar

annotate unit_Easteregg.pas @ 0:ef71164288c1

begin of using hg for cdar
author "Meillo r e t u r n s <meillo@marmaro.de>"
date Sun, 03 Dec 2006 21:54:43 +0100
parents
children
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.//########################################################################################