meillo@0: unit unit_Easteregg; meillo@0: meillo@0: interface//#################################################################################### meillo@0: meillo@0: uses meillo@0: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, meillo@0: Dialogs, jpeg, ExtCtrls; meillo@0: meillo@0: type meillo@0: Tform_easteregg = class(TForm) meillo@0: img_Marmaro: TImage; meillo@0: Timer1: TTimer; meillo@0: procedure img_MarmaroClick(Sender: TObject); meillo@0: procedure Timer1Timer(Sender: TObject); meillo@0: procedure FormCreate(Sender: TObject); meillo@0: private meillo@0: vx : integer; meillo@0: vy : integer; meillo@0: x1 : integer; meillo@0: y1 : integer; meillo@0: x2 : integer; meillo@0: y2 : integer; meillo@0: public meillo@0: { Public declarations } meillo@0: end; meillo@0: meillo@0: var meillo@0: form_easteregg: Tform_easteregg; meillo@0: meillo@0: implementation//############################################################################### meillo@0: meillo@0: {$R *.dfm}//################################################################################### meillo@0: meillo@0: //------------------------------------------------------------------------------ form create meillo@0: procedure Tform_easteregg.FormCreate(Sender: TObject); meillo@0: begin meillo@0: vx := 0; meillo@0: vy := 0; meillo@0: x1 := form_Easteregg.Left + (form_Easteregg.Width div 2); meillo@0: y1 := form_Easteregg.top + (form_Easteregg.height div 2); meillo@0: x2 := screen.Width div 2; meillo@0: y2 := screen.Height div 2; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: meillo@0: //############################################################################################# meillo@0: meillo@0: //------------------------------------------------------------------------------ kill meillo@0: procedure Tform_easteregg.img_MarmaroClick(Sender: TObject); meillo@0: begin meillo@0: application.Terminate; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: meillo@0: //------------------------------------------------------------------------------ move form meillo@0: procedure Tform_easteregg.Timer1Timer(Sender: TObject); meillo@0: begin meillo@0: // keep window in foreground meillo@0: SetWindowPos(handle, HWND_TopMost, left, top, width, height, SWP_ShowWindow); meillo@0: meillo@0: randomize; // for better random meillo@0: meillo@0: x1 := form_Easteregg.Left + (form_Easteregg.Width div 2); meillo@0: y1 := form_Easteregg.top + (form_Easteregg.height div 2); meillo@0: meillo@0: if x1 < x2 then meillo@0: begin meillo@0: vx := vx + (random(10)-4); meillo@0: end meillo@0: else meillo@0: begin meillo@0: vx := vx + (random(10)-6); meillo@0: end; meillo@0: meillo@0: if y1 < y2 then meillo@0: begin meillo@0: vy := vy + (random(10)-4); meillo@0: end meillo@0: else meillo@0: begin meillo@0: vy := vy + (random(10)-6); meillo@0: end; meillo@0: meillo@0: if (vx > 0) then form_easteregg.Left := form_easteregg.Left + (random(2)+1) meillo@0: else form_easteregg.Left := form_easteregg.Left - (random(2)+1); meillo@0: meillo@0: if (vy > 0) then form_easteregg.top := form_easteregg.top + (random(2)+1) meillo@0: else form_easteregg.top := form_easteregg.top - (random(2)+1); meillo@0: meillo@0: if form_easteregg.Left < 0 then form_Easteregg.left := 0; meillo@0: if form_easteregg.Left > screen.Width - form_easteregg.Width then meillo@0: form_Easteregg.Left := screen.Width - form_Easteregg.Width; meillo@0: if form_easteregg.top < 0 then form_Easteregg.top := 0; meillo@0: if form_easteregg.top > screen.Height - form_easteregg.height then meillo@0: form_Easteregg.top := screen.Height - form_Easteregg.height; meillo@0: end;//-------------------------------------------------------------------------- meillo@0: meillo@0: meillo@0: end.//########################################################################################