⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preview.pas

📁 用于开发税务票据管理的软件
💻 PAS
字号:
unit preview;

interface

uses
  Windows, Messages, Classes, Controls, Forms, Piece,
  StdCtrls, Buttons, Board, ExtCtrls, Menus;

type
  TfrmOptionsPreview = class(TForm)
    pnlBottom: TPanel;
    Chessboard1: TChessboard;
    btnClose: TBitBtn;
    popPreviewOptions: TPopupMenu;
    mnuShowValidMovesMode1: TMenuItem;
    mnuHighlightDragStartSquare1: TMenuItem;
    btnReset: TBitBtn;
    mnuUndo1: TMenuItem;
    mnuN1: TMenuItem;
    mnuRedo1: TMenuItem;
    procedure mnuShowValidMovesMode1Click(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure mnuHighlightDragStartSquare1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnResetClick(Sender: TObject);
    procedure Chessboard1Checkmate(Winner: TColour; var ResetGame: Boolean);
    procedure Chessboard1Draw(Stalemate, Repetition: Boolean; var ResetGame: Boolean);
    procedure mnuUndo1Click(Sender: TObject);
    procedure mnuRedo1Click(Sender: TObject);
    procedure popPreviewOptionsPopup(Sender: TObject);
  private
    { Private declarations }
  protected
    { Protected declarations }
//    procedure WMEraseBkgnd(var Msg: TWMEraseBkgnd); message WM_ERASEBKGND;
  public
    { Public declarations }
  end;

var
  frmOptionsPreview: TfrmOptionsPreview;

implementation

{$R *.DFM}

uses Options;

{procedure TfrmOptionsPreview.WMEraseBkgnd(var Msg: TWMEraseBkgnd);
begin
  Msg.Result := 1;
end;}

procedure TfrmOptionsPreview.mnuShowValidMovesMode1Click(Sender: TObject);
begin
  mnuShowValidMovesMode1.Checked := not mnuShowValidMovesMode1.Checked;
  Chessboard1.ShowValidMovesMode := mnuShowValidMovesMode1.Checked;

  frmOptions.chkShowValidMoves.OnClick := nil;
  frmOptions.chkShowValidMoves.Checked := Chessboard1.ShowValidMovesMode;
  frmOptions.chkShowValidMoves.OnClick := frmOptions.chkShowValidMovesClick;
end;

procedure TfrmOptionsPreview.btnCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmOptionsPreview.mnuHighlightDragStartSquare1Click(
  Sender: TObject);
begin
  mnuHighlightDragStartSquare1.Checked := not mnuHighlightDragStartSquare1.Checked;
  Chessboard1.HighlightStartSquare := mnuHighlightDragStartSquare1.Checked;

  // The following prevents the two procedures calling each other when
  // each changes, causing an infinite loop
  frmOptions.chkHighlightStartDragSquare.OnClick := nil;
  frmOptions.chkHighlightStartDragSquare.Checked := Chessboard1.HighlightStartSquare;
  frmOptions.chkHighlightStartDragSquare.OnClick := frmOptions.chkHighlightStartDragSquareClick;
end;

procedure TfrmOptionsPreview.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  frmOptions.chkPreview.Checked := False;
end;

procedure TfrmOptionsPreview.btnResetClick(Sender: TObject);
begin
  Chessboard1.ResetBoard;
end;

procedure TfrmOptionsPreview.Chessboard1Checkmate(Winner: TColour; var
  ResetGame: Boolean);
begin
  if frmOptions.chkResetBoardOnGameEnd.Checked then
    ResetGame := True;
end;

procedure TfrmOptionsPreview.Chessboard1Draw(Stalemate,
  Repetition: Boolean; var ResetGame: Boolean);
begin
  if frmOptions.chkResetBoardOnGameEnd.Checked then
    ResetGame := True;
end;

procedure TfrmOptionsPreview.mnuUndo1Click(Sender: TObject);
begin
  Chessboard1.Undo;
  popPreviewOptionsPopup(Self);
end;

procedure TfrmOptionsPreview.mnuRedo1Click(Sender: TObject);
begin
  Chessboard1.Redo;
  popPreviewOptionsPopup(Self);
end;

procedure TfrmOptionsPreview.popPreviewOptionsPopup(Sender: TObject);
begin
  mnuUndo1.Enabled := Chessboard1.UndoPossible;
  mnuRedo1.Enabled := Chessboard1.RedoPossible;
end;

end.

⌨️ 快捷键说明

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