Mercurial > cdar
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/unit_Easteregg.pas Sun Dec 03 21:54:43 2006 +0100 @@ -0,0 +1,97 @@ +unit unit_Easteregg; + +interface//#################################################################################### + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, jpeg, ExtCtrls; + +type + Tform_easteregg = class(TForm) + img_Marmaro: TImage; + Timer1: TTimer; + procedure img_MarmaroClick(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure FormCreate(Sender: TObject); + private + vx : integer; + vy : integer; + x1 : integer; + y1 : integer; + x2 : integer; + y2 : integer; + public + { Public declarations } + end; + +var + form_easteregg: Tform_easteregg; + +implementation//############################################################################### + +{$R *.dfm}//################################################################################### + +//------------------------------------------------------------------------------ form create +procedure Tform_easteregg.FormCreate(Sender: TObject); +begin + vx := 0; + vy := 0; + x1 := form_Easteregg.Left + (form_Easteregg.Width div 2); + y1 := form_Easteregg.top + (form_Easteregg.height div 2); + x2 := screen.Width div 2; + y2 := screen.Height div 2; +end;//-------------------------------------------------------------------------- + +//############################################################################################# + +//------------------------------------------------------------------------------ kill +procedure Tform_easteregg.img_MarmaroClick(Sender: TObject); +begin + application.Terminate; +end;//-------------------------------------------------------------------------- + +//------------------------------------------------------------------------------ move form +procedure Tform_easteregg.Timer1Timer(Sender: TObject); +begin + // keep window in foreground + SetWindowPos(handle, HWND_TopMost, left, top, width, height, SWP_ShowWindow); + + randomize; // for better random + + x1 := form_Easteregg.Left + (form_Easteregg.Width div 2); + y1 := form_Easteregg.top + (form_Easteregg.height div 2); + + if x1 < x2 then + begin + vx := vx + (random(10)-4); + end + else + begin + vx := vx + (random(10)-6); + end; + + if y1 < y2 then + begin + vy := vy + (random(10)-4); + end + else + begin + vy := vy + (random(10)-6); + end; + + if (vx > 0) then form_easteregg.Left := form_easteregg.Left + (random(2)+1) + else form_easteregg.Left := form_easteregg.Left - (random(2)+1); + + if (vy > 0) then form_easteregg.top := form_easteregg.top + (random(2)+1) + else form_easteregg.top := form_easteregg.top - (random(2)+1); + + if form_easteregg.Left < 0 then form_Easteregg.left := 0; + if form_easteregg.Left > screen.Width - form_easteregg.Width then + form_Easteregg.Left := screen.Width - form_Easteregg.Width; + if form_easteregg.top < 0 then form_Easteregg.top := 0; + if form_easteregg.top > screen.Height - form_easteregg.height then + form_Easteregg.top := screen.Height - form_Easteregg.height; +end;//-------------------------------------------------------------------------- + + +end.//########################################################################################