Lazarus功能很强大,数句代码可做异形窗体。稍作改动可同时支持Linux系统。

- unit Unit1;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
- StdCtrls;
- type
- { TForm1 }
- TForm1 = class(TForm)
- Image1: TImage;
- Image2: TImage;
- Label1: TLabel;
- Panel1: TPanel;
- Panel2: TPanel;
- Panel3: TPanel;
- Timer1: TTimer;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- procedure FormActivate(Sender: TObject);
- procedure FormClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- procedure FormShow(Sender: TObject);
- procedure FormWindowStateChange(Sender: TObject);
- procedure Image1Click(Sender: TObject);
- procedure Image2Click(Sender: TObject);
- procedure Panel1Click(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- private
- { private declarations }
- procedure ShapeControl(AControl: TWinControl);
- public
- { public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- self.Left:= (screen.Width - self.Width) div 2;
- self.Top:= (screen.Height - self.Height) div 2;
- self.ShowInTaskBar:= stNever;
- end;
- procedure TForm1.FormShow(Sender: TObject);
- begin
- self.ShowInTaskBar:= stNever;
- end;
- procedure TForm1.FormWindowStateChange(Sender: TObject);
- begin
- self.ShowInTaskBar:= stNever;
- end;
- procedure TForm1.Image1Click(Sender: TObject);
- begin
- end;
- procedure TForm1.Image2Click(Sender: TObject);
- begin
- close;
- end;
- procedure TForm1.Panel1Click(Sender: TObject);
- begin
- end;
- procedure TForm1.Timer1Timer(Sender: TObject);
- var
- ABitmap: TBitmap;
- begin
- self.Timer1.Enabled:=false;
- ABitmap := TBitmap.Create;
- ABitmap.Width := self.Width;
- ABitmap.Height := self.Height;
- ABitmap.Monochrome := True;
- with ABitmap.Canvas do
- begin
- Brush.Color := clBlack;
- FillRect(0, 0, ABitmap.Width, ABitmap.Height);
- end;
- ABitmap.Canvas.Draw(0,0,self.Image1.Picture.Graphic);
- self.Color:= clyellow;
- self.SetShape(ABitmap);
- ABitmap.Free;
- self.Panel1.Left:=0;
- self.Panel1.Top:=0 ;
- self.Image2.Left:=0;
- self.Image2.Top:=-5;
- self.Panel1.Color:= clDefault;
- self.Panel1.Visible:=true;
- self.Panel3.Color:=clDefault;
- self.Panel3.Visible:=true;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- //self.Color:= clYellow;
- self.ShapeControl(self);
- end;
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- end;
- procedure TForm1.FormActivate(Sender: TObject);
- begin
- self.ShowInTaskBar:= stNever;
- end;
- procedure TForm1.FormClick(Sender: TObject);
- begin
- end;
- procedure TForm1.ShapeControl(AControl: TWinControl);
- begin
- end;
- end.
复制代码 |