add README
[rofl0r-bogoAV.git] / bogo.pas
blob6c3e55146a1ef5e119c94b7ee4781b6a0ce1c4db
1 unit bogo;
3 interface
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, ExtCtrls;
9 type
10 TForm1 = class(TForm)
11 Timer1: TTimer;
12 procedure FormPaint(Sender: TObject);
13 procedure FormCreate(Sender: TObject);
14 procedure FormDestroy(Sender: TObject);
15 procedure Timer1Timer(Sender: TObject);
16 procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
17 Y: Integer);
18 private
19 { Private-Deklarationen }
20 public
21 { Public-Deklarationen }
22 stu3: TFileStream;
23 bmp: TBitmap;
24 end;
26 var
27 Form1: TForm1;
29 implementation
31 {$R *.dfm}
33 procedure TForm1.FormPaint(Sender: TObject);
34 begin
35 form1.Canvas.Draw(0,0,bmp);
36 end;
38 procedure TForm1.FormCreate(Sender: TObject);
39 begin
40 // load bmp
41 stu3 := TFileStream.Create(ExtractFilePath(Application.ExeName) + 'splash.bmp', fmOpenRead);
42 bmp := Tbitmap.Create;
43 stu3.Seek(0,soFromBeginning);
44 if stu3.size < 10 then exit;
45 bmp.LoadFromStream(stu3);
47 // scale to bitmap size
48 self.Width := bmp.Width;
49 self.Height := bmp.Height;
51 // start timer to close ourselves after some seconds
52 timer1.Interval := 6000;
53 timer1.Enabled := true;
55 // accept command line arguments for left and top offsets
56 if(paramcount = 2) then begin
57 left := strtoint(paramstr(1));
58 top := strtoint(paramstr(2));
59 end;
60 end;
62 procedure TForm1.FormDestroy(Sender: TObject);
63 begin
64 bmp.Free;
65 stu3.Free;
66 end;
68 procedure TForm1.Timer1Timer(Sender: TObject);
69 begin
70 self.Close;
71 timer1.Enabled := false;
72 end;
74 procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
75 Y: Integer);
76 const
77 SC_DRAGMOVE = $F012;
79 begin
80 if (ssLeft in Shift) then
81 begin
82 ReleaseCapture;
83 Form1.Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
84 end;
86 Paint;
88 end;
90 end.