Mercurial > cdar
view 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 source
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.//########################################################################################