首页
社区
课程
招聘
[旧帖] [原创]保密卡程序 附效果图+源码+程序 0.00雪花
发表于: 2010-10-31 12:40 3136

[旧帖] [原创]保密卡程序 附效果图+源码+程序 0.00雪花

2010-10-31 12:40
3136
unit USafeCard;

{$R 'Card.res' 'Card.rc'}
interface

uses
  Windows, SysUtils, Classes, Forms,Dialogs,Graphics,Clipbrd,
  StdCtrls, ExtCtrls, Buttons, Controls;

type
  TForm8 = class(TForm)
    GroupBox1: TGroupBox;
    Image1: TImage;
    BitBtn1: TBitBtn;
    Button1: TButton;
    Button2: TButton;
    Shape1: TShape;
    Label1: TLabel;
    Label2: TLabel;
    Panel1: TPanel;
    Timer1: TTimer;
    GroupBox2: TGroupBox;
    Edit1: TEdit;
    Button3: TButton;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn1MouseEnter(Sender: TObject);
    procedure BitBtn1MouseLeave(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Shape1MouseEnter(Sender: TObject);
    procedure Shape1MouseLeave(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form8: TForm8;
  BitBtn:array[1..8,1..15] of TBitBtn;//二维数组组件的定义
  BitBtnTemp:TBitBtn;//记录上次点击按钮的临时组件

implementation

{$R *.dfm}

procedure TForm8.BitBtn1Click(Sender: TObject);
begin
  (Sender as TBitBtn).Visible:=False;

  if BitBtnTemp=nil then
  begin
    BitBtnTemp:= (Sender as TBitBtn);
    Exit;
  end;

  if not(BitBtnTemp=nil) then
  begin
    BitBtnTemp.Visible:=True;
    BitBtnTemp:=(Sender as TBitBtn);
    Exit;
  end;
end;

procedure TForm8.BitBtn1MouseEnter(Sender: TObject);
var
BBTemp:TBitBtn;
PosX,PosY:Integer;
i,j:Integer;
begin

   BBTemp:=(Sender as TBitBtn);
   PosY:=BBTemp.Tag div 10;//10-150
   PosX:=BBTemp.Tag mod 10;//1-8
   Label2.Caption:=Char(PosX+64)+IntToStr(PosY div 10);//Char(65):A

   for i := 1 to 8 do
   begin
      if i=PosX then
      begin
        for j := 1 to 15 do
           begin
             BitBtn[i,j].Kind:=bkRetry;
             BitBtn[i,j].Caption:='&';
           end;
      end;
   end;

   for j := 1 to 15 do
   begin
      if j=(PosY div 10) then
      begin
        for i := 1 to 8 do
           begin
             BitBtn[i,j].Kind:=bkRetry;
             BitBtn[i,j].Caption:='&';
           end;
      end;
   end;


end;

procedure TForm8.BitBtn1MouseLeave(Sender: TObject);
var
i,j:Integer;
begin
  Image1.Visible:=False;
  for i := 1 to 8 do
  begin
    for j := 1 to 15 do
      begin
        if BitBtn[i,j].Kind=bkRetry then
        begin
          BitBtn[i,j].Kind:=bkCustom;
          BitBtn[i,j].Glyph:=nil;
          BitBtn[i,j].Caption:='';
        end;
      end;
  end;
  Image1.Visible:=True;//有时刷新会暴露按钮后的图片,不知何原因,故控制图片的显示时间
end;



procedure TForm8.Button1Click(Sender: TObject);
begin
    Image1.Picture.Bitmap.LoadFromResourceName(HInstance,'ABNNEK'); //Load card1 模糊名称
    if not(BitBtnTemp=nil) then
    begin
      BitBtnTemp.Visible:=True;
      BitBtnTemp:=nil;
    end;
end;

procedure TForm8.Button2Click(Sender: TObject);
begin
    Image1.Picture.Bitmap.LoadFromResourceName(HInstance,'BBTKR'); //Load card2
    if not(BitBtnTemp=nil) then
    begin
      BitBtnTemp.Visible:=True;
      BitBtnTemp:=nil;
    end;
end;

procedure TForm8.Button3Click(Sender: TObject);
begin
  if Edit1.Text='mmm   ' then
  GroupBox2.Visible:=False;
end;

procedure TForm8.FormCreate(Sender: TObject);
var
i,j:Integer;
begin
  SetWindowPos(Handle,HWND_TOPMOST,0,0,Self.Width,Self.Height,SWP_SHOWWINDOW);//令窗体在最前
  for i := 1 to 8 do
  begin
    for j := 1 to 15 do
      begin
        BitBtn[i, j]:=TBitBtn.Create(Self);//动态创建组件,create参数多用self,也就是窗体本身
        BitBtn[i, j].Parent:=Panel1;//动态创建组件,要正常显示需指定父容器

        BitBtn[i, j].Width:=30;
        BitBtn[i, j].Height:=28; //大小

        BitBtn[i, j].Left:=29*(i-1);
        BitBtn[i, j].Top:=26*(j-1);  //位置

        BitBtn[i, j].OnClick:=BitBtn1Click;  //批量响应事件
        BitBtn[i, j].OnMouseEnter:=BitBtn1MouseEnter;
        BitBtn[i, j].OnMouseLeave:=BitBtn1MouseLeave;

        BitBtn[i, j].TabStop:=False;
        BitBtn[i, j].Tag:=100*j+i;//通过tag来识别组件
      end;
  end;
  Image1.Picture.Bitmap.LoadFromResourceName(HInstance,'ABNNEK'); //Load card1 模糊名称
  Edit1.SetFocus;
end;

procedure TForm8.Shape1MouseEnter(Sender: TObject);
begin
  Shape1.Pen.Mode:=pmNop;//显示卡序号
end;

procedure TForm8.Shape1MouseLeave(Sender: TObject);
begin
  Shape1.Pen.Mode:=pmWhite;//覆盖卡序号
end;

procedure TForm8.Timer1Timer(Sender: TObject);
begin
  Clipboard.Clear;//引用Clipbrd单元,则可以直接调用Clipboard全局变量。
end;

end.


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 21
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
....学习一下
2010-10-31 13:16
0
雪    币: 278
活跃值: (709)
能力值: ( LV15,RANK:520 )
在线值:
发帖
回帖
粉丝
3
顶哈!顺便鄙视哈!不传东西上来
2010-10-31 13:26
0
雪    币: 258
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
已经更新附件,有源码和编译好的exe
2010-10-31 19:32
0
雪    币: 15
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
看看,学习学习。
2010-10-31 21:05
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
学习了,谢谢了。
2010-10-31 21:40
0
雪    币: 94
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
支持原创,谢谢楼主了
2010-11-1 08:31
0
雪    币: 7
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
自主编程很好,支持下
2010-11-3 12:04
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
很不错的程序。
2010-11-3 12:33
0
雪    币: 263
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
很好,学习一下,谢了
2010-11-3 13:28
0
雪    币: 70
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
看不懂了,顶。
2010-11-3 13:48
0
雪    币: 2105
活跃值: (424)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
清剪贴板就可以防截屏?
2010-11-30 12:45
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
有源码。。我可以学习一下了,以前用vb写了个类似的。。
2010-11-30 13:01
0
雪    币: 303
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
差点功能。如果可以导入密保卡 自动识别出图上密文 或许会更好。。。
2010-11-30 13:46
0
游客
登录 | 注册 方可回帖
返回
//