lazarus-ccr/applications/fpchess/selectpromotionpiece.pas
sekelsenmat 5ab9f08077 fpchess: Adds forgotten promotion form
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1896 8e941d3f-bd1b-0410-a28a-d453659cc2b4
2011-09-04 16:32:54 +00:00

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.