
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1896 8e941d3f-bd1b-0410-a28a-d453659cc2b4
115 lines
2.4 KiB
ObjectPascal
115 lines
2.4 KiB
ObjectPascal
unit selectPromotionPiece;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
|
ExtCtrls, chessConfig, chessgame;
|
|
|
|
type
|
|
|
|
{ TformPromotion }
|
|
|
|
TformPromotion = class(TForm)
|
|
imageRook: TImage;
|
|
imageKnight: TImage;
|
|
imageBishop: TImage;
|
|
imageQueen: TImage;
|
|
labelSelectPiece: TLabel;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure imageBishopClick(Sender: TObject);
|
|
procedure imageKnightClick(Sender: TObject);
|
|
procedure imageQueenClick(Sender: TObject);
|
|
procedure imageRookClick(Sender: TObject);
|
|
private
|
|
{ private declarations }
|
|
imageUrls : Array [1..4] of String;
|
|
playerToMove : boolean; //true=white; false=black
|
|
public
|
|
{ public declarations }
|
|
constructor Create(playeriswhite: boolean);
|
|
end;
|
|
|
|
var
|
|
formPromotion: TformPromotion;
|
|
pieceChosen : chessgame.Tchesstile;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TformPromotion }
|
|
|
|
procedure TformPromotion.FormShow(Sender: TObject);
|
|
begin
|
|
imageRook.Picture.LoadFromFile(imageUrls[1]);
|
|
imageKnight.Picture.LoadFromFile(imageUrls[2]);
|
|
imageBishop.Picture.LoadFromFile(imageUrls[3]);
|
|
imageQueen.Picture.LoadFromFile(imageUrls[4]);
|
|
end;
|
|
|
|
procedure TformPromotion.imageBishopClick(Sender: TObject);
|
|
begin
|
|
if playerToMove then
|
|
pieceChosen:= ctWBishop
|
|
else
|
|
pieceChosen:=ctBBishop;
|
|
ModalResult:=mrOK;
|
|
end;
|
|
|
|
procedure TformPromotion.imageKnightClick(Sender: TObject);
|
|
begin
|
|
if playerToMove then
|
|
pieceChosen:= ctWKnight
|
|
else
|
|
pieceChosen:=ctBKnight;
|
|
ModalResult:=mrOK;
|
|
end;
|
|
|
|
procedure TformPromotion.imageQueenClick(Sender: TObject);
|
|
begin
|
|
if playerToMove then
|
|
pieceChosen:= ctWQueen
|
|
else
|
|
pieceChosen:=ctBQueen;
|
|
ModalResult:=mrOK;
|
|
end;
|
|
|
|
procedure TformPromotion.imageRookClick(Sender: TObject);
|
|
begin
|
|
if playerToMove then
|
|
pieceChosen:= ctWRook
|
|
else
|
|
pieceChosen:=ctBRook;
|
|
ModalResult:=mrOK;
|
|
end;
|
|
|
|
constructor TformPromotion.Create(playeriswhite: boolean);
|
|
var
|
|
dir : String;
|
|
begin
|
|
inherited Create(nil);
|
|
|
|
dir :=vChessConfig.GetCurrentSkinDir;
|
|
playerToMove:=playeriswhite;
|
|
if playeriswhite then
|
|
begin
|
|
imageUrls[1]:= dir + 'wrook.png';
|
|
imageUrls[2]:= dir + 'wknight.png';
|
|
imageUrls[3]:= dir + 'wbishop.png';
|
|
imageUrls[4]:= dir + 'wqueen.png';
|
|
end
|
|
else
|
|
begin
|
|
imageUrls[1]:= dir + 'brook.png';
|
|
imageUrls[2]:= dir + 'bknight.png';
|
|
imageUrls[3]:= dir + 'bbishop.png';
|
|
imageUrls[4]:= dir + 'bqueen.png';
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|