纸牌控件的编写(上)

使用了系统自带的纸牌库,无需任何资源,具有边角圆滑的效果,支持Windows 98、Windows 2000系统。

效果如下图:

 

还具有自定义图象功能,如下图所示:

unit ZFPlayCard;

{

2003.11.27

xzhifei

}

interface

 

uses

  Windows, WinTypes, Messages, SysUtils, Classes, Controls, Graphics;

 

const

  idClubsAce = 1;

  idClubs2 = 2;

  idClubs3 = 3;

  idClubs4 = 4;

  idClubs5 = 5;

  idClubs6 = 6;

  idClubs7 = 7;

  idClubs8 = 8;

  idClubs9 = 9;

  idClubs10 = 10;

  idClubsJack = 11;

  idClubsQueen = 12;

  idClubsKing = 13;

 

  idDiamondsAce = 14;

  idDiamonds2 = 15;

  idDiamonds3 = 16;

  idDiamonds4 = 17;

  idDiamonds5 = 18;

  idDiamonds6 = 19;

  idDiamonds7 = 20;

  idDiamonds8 = 21;

  idDiamonds9 = 22;

  idDiamonds10 = 23;

  idDiamondsJack = 24;

  idDiamondsQueen = 25;

  idDiamondsKing = 26;

 

  idHeartsAce = 27;

  idHearts2 = 28;

  idHearts3 = 29;

  idHearts4 = 30;

  idHearts5 = 31;

  idHearts6 = 32;

  idHearts7 = 33;

  idHearts8 = 34;

  idHearts9 = 35;

  idHearts10 = 36;

  idHeartsJack = 37;

  idHeartsQueen = 38;

  idHeartsKing = 39;

 

  idSpadesAce = 40;

  idSpades2 = 41;

  idSpades3 = 42;

  idSpades4 = 43;

  idSpades5 = 44;

  idSpades6 = 45;

  idSpades7 = 46;

  idSpades8 = 47;

  idSpades9 = 48;

  idSpades10 = 49;

  idSpadesJack = 50;

  idSpadesQueen = 51;

  idSpadesKing = 52;

 

  RankFirst = idClubsAce;

  RankLast = idClubsKing;

  RankCount = RankLast - RankFirst + 1;

 

  idFaceFirst = idClubsAce;

  idFaceLast = idSpadesKing;

  FaceCount = idFaceLast - idFaceFirst;

 

  SuitCount = 4;

 

  idDeckEmpty = 53; { $35  }

  idDeckPattern1 = 54; { $36  }

  idDeckPattern2 = 55; { $37  }

  idDeckRobot = 56; { $38  }

  idDeckRoses = 57; { $39  }

  idDeckFlowers1 = 58; { $3A  }

  idDeckFlowers2 = 59; { $3B  }

  idDeckFishes = 60; { $3C  }

  idDeckAquarium = 61; { $3D  }

  idDeckShell = 62; { $3E  }

  idDeckCastle = 63; { $3F  }

  idDeckPalmbeach = 64; { $40  }

  idDeckCardhand = 65; { $41  }

  { there is no card# 66 }

  idDeckCross = 67; { $43  }

  idDeckCircle = 68; { $44  }

 

  idDeckFirst = idDeckEmpty;

  idDeckLast = idDeckCardhand;

  DeckCount = idDeckLast - idDeckFirst + 1;

 

  idDeckSpecialFirst = idDeckCross;

  idDeckSpecialLast = idDeckCircle;

  DeckSpecialCount = idDeckSpecialLast - idDeckSpecialFirst + 1;

 

  idAnimateCardhand1 = 678; { $02A6 }

  idAnimateCardhand2 = 679; { $02A7 }

  idAnimateCastle = 680; { $02A8 }

  idAnimateSunSmile = 681; { $02A9 }

  idAnimateSunSmileTongue = 682; { $02AA }

  idAnimateRobot1 = 683; { $02AB }

  idAnimateRobot2 = 684; { $02AC }

 

type

  TCardId = Cardinal; { Win32 - 31-bit unsigned integer

  Win16 - 16-bit unsigned integer }

  TCardMode = (mode1, mode2, mode3, mode4, mode5, mode6, mode7, mode8, mode9);

  { Win32 - 31-bit unsigned integer

Win16 - 16-bit unsigned integer }

  TCoordinate = Integer; { Win32 - 32-bit signed integer

  Win16 - 16-bit signed integer }

 

未完,请看下一章。

你可能感兴趣的:(VCL)