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.//########################################################################################