📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
PaintBox1: TPaintBox;
Btn_OK: TButton;
procedure FormCreate(Sender: TObject);
procedure PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Btn_OKClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
OKbmp,NObmp:TBitmap;
implementation
{$R *.dfm}
type
Myarray=array[1..5,1..5] of Integer;
var
Array2:Myarray;
const
Array1:Myarray=((1,0,0,0,0),(0,1,0,1,0),(1,0,0,0,1),(0,1,0,1,0),(0,0,1,0,0));//为密码数组赋值
procedure TForm1.FormCreate(Sender: TObject);
var
i,j:integer;
Currdir:array[0..255] of char;
begin
GetCurrentDirectory(250,@Currdir);//取当前程序目录然后载入图片
OKbmp:=Tbitmap.Create;
OKbmp.LoadFromFile(strpas(Currdir)+'\'+'OK.bmp');
NObmp:=Tbitmap.Create;
NObmp.LoadFromFile(strpas(Currdir)+'\'+'NO.bmp');
for i:=1 to 5 do
for j:=1 to 5 do
begin
PaintBox1.Canvas.Draw((i-1)*16,(j-1)*16,NObmp);
Array2[i,j]:=0;//将PaintBox1初始化为距阵形式
end;
end;
procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i,j:integer;
begin
i:=y Div 16+1;
j:=x DIv 16+1;//根据鼠标的位置计算当前数组的位置
if Array2[i,j]=0 then //判断数组的状态然后进行转换
begin
PaintBox1.Canvas.Draw((j-1)*16,(i-1)*16,OKbmp);
Array2[i,j]:=1;
end
else
begin
PaintBox1.Canvas.Draw((j-1)*16,(i-1)*16,NObmp);
Array2[i,j]:=0;
end;
end;
procedure TForm1.Btn_OKClick(Sender: TObject);
var
i,j,m,n:integer;
begin
for i:=1 to 5 do
for j:=1 to 5 do
if Array1[i,j]<>Array2[i,j] then//通过两个数组对比进行密码验证
begin
Application.MessageBox('密码错误!请重新组合。','警告',0);
for m:=1 to 5 do
for n:=1 to 5 do
begin
PaintBox1.Canvas.Draw((m-1)*16,(n-1)*16,NObmp);
Array2[i,j]:=0;//将PaintBox1初始化为距阵形式
end;
exit;
end;
Application.MessageBox('密码组合成功。','警告',0);
for m:=1 to 5 do
for n:=1 to 5 do
begin
PaintBox1.Canvas.Draw((m-1)*16,(n-1)*16,NObmp);
Array2[i,j]:=0;//将PaintBox1初始化为距阵形式
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -