⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.~pas

📁 小程序 可以任意的拖动 会找到一定的水平线 右击退出即可
💻 ~PAS
字号:
Unit main;

Interface

Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, Menus, ImgList, DXClass, BitmapRegion;

Type
  TMainForm = Class(TForm)
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    Quit1: TMenuItem;
    Settings1: TMenuItem;
    Timer1: TTimer;
    Heads: TImageList;
    Legs: TImageList;
    FLegs: TImageList;
    FHeads: TImageList;
    Procedure Quit1Click(Sender: TObject);
    Procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
    Procedure Timer1Timer(Sender: TObject);
    Procedure LMDTrayIcon1Click(Sender: TObject);
    Procedure FormCreate(Sender: TObject);
    Procedure Hide1Click(Sender: TObject);
    Procedure Settings1Click(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;

Var
  MainForm          : TMainForm;
//             bitmap : tbitmap;

Const Joffacount    = 1;
Const Gravity       = 0.11;
Implementation

Uses joffa, settings;

{$R *.DFM}


Procedure TMainForm.Quit1Click(Sender: TObject);
Begin
  MainForm.Close;
End;

Procedure TMainForm.DXTimer1Timer(Sender: TObject; LagCount: Integer);
Var i               : integer;
Begin
  Application.ProcessMessages;
  For i := 0 To self.componentcount - 1 Do
    If self.components[i] Is TJoffaForm Then
      With TJoffaForm(self.components[i]) Do
      Begin
//   x:=x+1;
        MoveJoffa;
      End;

{for i:=0 to self.componentcount-1 do
 if self.components[i] is TJoffaForm then
  With TJoffaForm(self.components[i]) Do
   Begin
//   x:=x+1;
   top:=round(x);
   left:=round(y);
   End;{}

End;

Procedure TMainForm.Timer1Timer(Sender: TObject);
Var i               : integer;
Begin
  Application.ProcessMessages;
  For i := 0 To self.componentcount - 1 Do
    If self.components[i] Is TJoffaForm Then
      With TJoffaForm(self.components[i]) Do If visible Then MoveJoffa;
End;

Procedure TMainForm.LMDTrayIcon1Click(Sender: TObject);
Var i               : integer;
Begin
  For i := 0 To self.componentcount - 1 Do
    If self.components[i] Is TJoffaForm Then
      TJoffaForm(self.components[i]).Visible := True;
//LMDTrayIcon1.Active:=False;;
End;

Procedure FlipBitmap(Var bmp: tbitmap);
Type pscanline = Array[0..100000000] Of tcolor;
Var xx, yy          : integer;
  oscanl, scanl     : ^pscanline;
  oldbmp            : tbitmap;
Begin
  bmp.pixelformat := pf32bit;
  oldbmp := tbitmap.create;
  oldbmp.pixelformat := pf32bit;
  oldbmp.width := bmp.width;
  oldbmp.height := bmp.height;
  oldbmp.Canvas.Draw(0, 0, bmp);
  For yy := 0 To bmp.Height - 1 Do
  Begin
    scanl := bmp.ScanLine[yy];
    oscanl := oldbmp.scanline[yy];
    For xx := 0 To bmp.width - 1 Do
      scanl[xx] := oscanl[(bmp.width - 1) - xx];
  End;
  oldbmp.free;
End;

Procedure MakeBMPMask(oldbmp: tbitmap; Var outbmp: tbitmap; maskcolor: tcolor);
Type pscanline = Array[0..100000000] Of tcolor;
Var xx, yy          : integer;
  oscanl, scanl     : ^pscanline;
Begin
  oldbmp.pixelformat := pf32bit;
  outbmp.pixelformat := pf32bit;
  outbmp.width := oldbmp.width;
  outbmp.height := oldbmp.height;
//outbmp.pixelformat:=pf32bit;
  outbmp.Canvas.Draw(0, 0, oldbmp);
  outbmp.Mask(maskcolor);


{for yy:=0 to oldbmp.Height-1 do
 begin
 scanl:=outbmp.ScanLine[yy];
 oscanl:=oldbmp.scanline[yy];
 for xx:=0 to oldbmp.width-1 do
  if oscanl[xx]=maskcolor then scanl[xx]:=clwhite else scanl[xx]:=clblack;
 end;{}
End;

Procedure TMainForm.FormCreate(Sender: TObject);
Var i               : integer;
  bmp, mask         : tbitmap;
Begin
  bmp := tbitmap.create;
  mask := tbitmap.create;
  For i := 0 To legs.count - 1 Do
  Begin
    bmp.Canvas.brush.Color := clred;
    bmp.Canvas.FillRect(rect(0, 0, 31, 31));
    legs.getbitmap(i, bmp);
    flipbitmap(bmp);
    MakeBMPMask(bmp, mask, clred);
    flegs.Add(bmp, mask);
  End;

  For i := 0 To heads.count - 1 Do
  Begin
    bmp.Canvas.brush.Color := clred;
    bmp.Canvas.FillRect(rect(0, 0, 31, 31));
    heads.getbitmap(i, bmp);
    flipbitmap(bmp);
    fheads.Add(bmp, Nil);
  End;
  bmp.free;
  mask.free;

//lmdtrayicon1.icon:=application.icon;
  randomize;
  For i := 1 To joffacount Do
    With TJoffaForm.Create(Self) Do
    Begin
      x := Mouse.CursorPos.X;
      y := Mouse.CursorPos.Y;
      pic := 0;
      opic := 1;
//  Images.GetBitmap(trunc(pic),Image.Picture.Bitmap);
      Show;
    End;
End;

Procedure TMainForm.Hide1Click(Sender: TObject);
Var i               : integer;
Begin
  For i := 0 To self.componentcount - 1 Do
    If self.components[i] Is TJoffaForm Then
      TJoffaForm(self.components[i]).Visible := False;
//LMDTrayIcon1.Active:=True;
End;

Procedure TMainForm.Settings1Click(Sender: TObject);
Begin
  SettingsForm.Show;
End;

End.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -