📄 preview.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 + -