gxxg.~pas

来自「这是一个delphi源码」· ~PAS 代码 · 共 165 行

~PAS
165
字号
unit GXXG;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, jpeg;

type
  TGXXGForm = class(TForm)
    LeftImage: TImage;
    RightImage: TImage;
    SelectedImage: TImage;
    Image1: TImage;
    Image2: TImage;
    Image3: TImage;
    Image4: TImage;
    Image5: TImage;
    Image6: TImage;
    Image7: TImage;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Image1Click(Sender: TObject);
    procedure Image7Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormShow(Sender: TObject);
  private
    CurItem:Integer;
    SelImage:Array[1..6] of TImage;
    procedure SelItem(ItemIndex:Integer);
    procedure UnSelAll;
    procedure NextItem;
    procedure PriorItem;
    procedure AgreeCurSel;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  GXXGForm: TGXXGForm;

implementation

uses Data, GXXZ;

{$R *.DFM}

procedure TGXXGForm.AgreeCurSel;
begin
Case CurItem of
  1:DataMod.GXKDataSet.Filter:='XB=''男'' and ZS=2 and CANSHOW=''T''';
  2:DataMod.GXKDataSet.Filter:='XB=''男'' and ZS=3 and CANSHOW=''T''';
  3:DataMod.GXKDataSet.Filter:='XB=''女'' and ZS=2 and CANSHOW=''T''';
  4:DataMod.GXKDataSet.Filter:='XB=''女'' and ZS=3 and CANSHOW=''T''';
  5:DataMod.GXKDataSet.Filter:='SFYCZH=''T'' and CANSHOW=''T''';
//  6:DataMod.GXKDataSet.Filter:='not ((XB=''男'' and ZS=2) or (XB=''男'' and ZS=3) or (XB=''女'' and ZS=2) or (XB=''女'' and ZS=3) or (SFYCZH=''T'')) and CANSHOW=''T''';
  6:DataMod.GXKDataSet.Filter:='ZS>3 and (SFYCZH=''F'' or SFYCZH is NULL) and CANSHOW=''T''';
end;
  DataMod.GXKDataSet.Filtered:=true;
  GXXZForm:=TGXXZForm.Create(self);
  GXXZForm.ShowModal;
end;
procedure TGXXGForm.NextItem;
begin
  SelItem(CurItem mod 6 +1);
end;
procedure TGXXGForm.PriorItem;
begin
  SelItem((CurItem+4) mod 6 +1 );
end;
procedure TGXXGForm.UnSelAll;
begin
  SelImage[1].Picture:=nil;
  SelImage[2].Picture:=nil;
  SelImage[3].Picture:=nil;
  SelImage[4].Picture:=nil;
  SelImage[5].Picture:=nil;
  SelImage[6].Picture:=nil;
end;
procedure TGXXGForm.SelItem(ItemIndex:Integer);
begin
CurItem:=ItemIndex;
UnSelAll;
SelImage[CurItem].Canvas.CopyRect(SelImage[CurItem].ClientRect,SelectedImage.Canvas,Rect(SelImage[CurItem].Left-LeftImage.Width,SelImage[CurItem].Top,SelImage[CurItem].Left+SelImage[CurItem].Width-LeftImage.Width,SelImage[CurItem].Top+SelImage[CurItem].Height));
end;
procedure TGXXGForm.FormCreate(Sender: TObject);
begin
Top:=0;
Left:=0;
end;

procedure TGXXGForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procedure TGXXGForm.Image1Click(Sender: TObject);
begin
SelItem(TImage(Sender).Tag);
AgreeCurSel;
end;

procedure TGXXGForm.Image7Click(Sender: TObject);
begin
Close;
end;

procedure TGXXGForm.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=VK_UP then
  PriorItem;
if Key=VK_DOWN then
  NextItem;
if (Key=$31) or (Key=VK_NUMPAD1) then
  begin
    SelItem(1);
    AgreeCurSel;
  end;
if (Key=$32) or (Key=VK_NUMPAD2) then
  begin
    SelItem(2);
    AgreeCurSel;
  end;
if (Key=$33) or (Key=VK_NUMPAD3) then
  begin
    SelItem(3);
    AgreeCurSel;
  end;
if (Key=$34) or (Key=VK_NUMPAD4) then
  begin
    SelItem(4);
    AgreeCurSel;
  end;
if (Key=$35) or (Key=VK_NUMPAD5) then
  begin
    SelItem(5);
    AgreeCurSel;
  end;
if (Key=$36) or (Key=VK_NUMPAD6) then
  begin
    SelItem(6);
    AgreeCurSel;
  end;
if (Key=72) then
  AgreeCurSel;
if (Key=70) then
    Close;
end;

procedure TGXXGForm.FormShow(Sender: TObject);
begin
SelImage[1]:=Image1;
SelImage[2]:=Image2;
SelImage[3]:=Image3;
SelImage[4]:=Image4;
SelImage[5]:=Image5;
SelImage[6]:=Image6;
SelItem(1);
end;

end.

⌨️ 快捷键说明

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