?? unit2.pas
字號:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
type
TForm2 = class(TForm)
PaintBox1: TPaintBox;
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure PaintBox1Paint(Sender: TObject);
private
{ Private declarations }
BitmapRect:TRect;
PositiveMasks:array of TBrush; //正畫刷
NegativeMasks:array of TBrush; //負畫刷
SolidBlackBrush:TBrush;
FadeBitmap:TBitmap;
WorkSpaceBitmap:TBitmap;
Progress:integer;
Procedure ProcessFadeFromBlackStep; //淡出
public
{ Public declarations }
end;
var
Form2: TForm2;
const
BRUSHCOUNT:integer=11;
implementation
{$R *.DFM}
procedure TForm2.FormCreate(Sender: TObject);
var
i,j:integer;
BrushRect:TRect;
begin
BrushRect.left := 0;
BrushRect.top := 0;
BrushRect.right := 8;
BrushRect.bottom := 8;
setLength(PositiveMasks,BRUSHCOUNT);
setLength(NegativeMasks,BRUSHCOUNT);
for j:=0 to BRUSHCOUNT-1 do
begin
PositiveMasks[j] := TBrush.Create;
NegativeMasks[j] := TBrush.Create;
PositiveMasks[j].Bitmap := TBitmap.Create;
NegativeMasks[j].Bitmap := TBitmap.Create;
PositiveMasks[j].Bitmap.Width := 8;
PositiveMasks[j].Bitmap.Height:= 8;
Randomize();
for i:=0 to 8*j-1 do
begin
PositiveMasks[j].Bitmap.Canvas.
Pixels[random(8),random(8)]:=clBlack;
NegativeMasks[j].Bitmap.Assign(PositiveMasks[j].Bitmap);
NegativeMasks[j].Bitmap.Canvas.CopyMode:=cmNotSrcCopy;
NegativeMasks[j].Bitmap.Canvas.Draw(0,0,PositiveMasks[j].Bitmap);
// InvertRect(NegativeMasks[j].Bitmap.Canvas.Handle, BrushRect);
end;
SolidBlackBrush := TBrush.Create;
SolidBlackBrush.Style := bsSolid;
SolidBlackBrush.Color := clBlack;
FadeBitmap := TBitmap.Create;
WorkSpaceBitmap := TBitmap.Create;
Progress := 0;
FadeBitmap.LoadFromFile('huarongdao.bmp');
WorkSpaceBitmap.Width := FadeBitmap.Width;
WorkSpaceBitmap.Height := FadeBitmap.Height;
WorkSpaceBitmap.Canvas.Draw(0,0,FadeBitmap);
BitmapRect := Rect(0,0,FadeBitmap.Width,FadeBitmap.Height);
end;
end;
procedure TForm2.FormDestroy(Sender: TObject);
var
j:integer;
begin
for j:=0 to BRUSHCOUNT-1 do
begin
PositiveMasks[j].Bitmap.Free;
NegativeMasks[j].Bitmap.Free;
PositiveMasks[j].Free;
NegativeMasks[j].Free;
end;
SolidBlackBrush.Free;
FadeBitmap.Free;
WorkSpaceBitmap.Free;
end;
procedure TForm2.Timer1Timer(Sender: TObject);
begin
ProcessFadeFromBlackStep;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
Close; //關閉Form2,進入Form1
end;
Procedure TForm2.ProcessFadeFromBlackStep;
begin
if (Progress = BRUSHCOUNT) then
begin
Progress := 0;
Timer1.Enabled := false;
WorkSpaceBitmap.Canvas.CopyMode:=cmSrcCopy;
WorkSpaceBitmap.Canvas.Draw(0,0,FadeBitmap);
end
else
begin
WorkSpaceBitmap.Canvas.Brush := NegativeMasks[Progress];
WorkSpaceBitmap.Canvas.CopyMode:=cmMergeCopy;
WorkSpaceBitmap.Canvas.Draw(0,0,FadeBitmap);
Progress:=Progress+1;
end;
PaintBox1.Canvas.Draw(0,0,WorkSpaceBitmap);
end;
procedure TForm2.PaintBox1Paint(Sender: TObject);
begin
PaintBox1.Canvas.Draw(0,0,WorkSpaceBitmap);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -