易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi – 我的代码之简单五子棋

技术交流,DH讲解. 今天来实现一个简单的五子棋,直接用GDI来画的一个游戏.
首先我们来想下怎么存放数据,哪些地方是白棋,哪些地方是黑棋,哪些地方没有下棋?
对,我们用一个二维数组,如果数组中某一个位置的值为0代表没有下棋,为1代表是白棋,为2代表是黑棋.
好就这么说定了,为了使用方便,我们打算做成一个控件,因为要画界面所以我们从TGraphicControl继承下来.
看一下类定义的代码: Type
TLastPlayer= (LpP1, LpP2);
TGameEvent= Procedure(S: TObject; P: TLastPlayer) Of Object;
TFiveGame= Class(TGraphicControl)
Private
// 如果是空,就是0,白棋就是1,黑棋就是2
FData: Array Of Array Of Byte;
// 棋盘的长和宽
FRows, FColumns: Integer;
// 格子的宽度/
FCellWidth: Integer;
// 是否自动大小
FAutoSize: Boolean;
// 棋盘线条的颜色.
FLineColor: TColor;
// 2个选手的颜色
FPlayerOneColor: TColor;
FPlayerTwoColor: TColor;
// 边距
FHDistance, FVDistance: Integer;
// 上次操作的选手
FLastPlayer: TLastPlayer;
// 三个事件
FWinEvent: TGameEvent;
FErrorEvent: TGameEvent;
FSuccessEvent: TGameEvent;
Procedure SetRows(Const Value: Integer);
Procedure SetColumns(Const Value: Integer);
Procedure SetCellWidth(Const Value: Integer);
Procedure SetAutoSize(Const Value: Boolean);
Procedure SetLineColor(Const Value: TColor);
Procedure SetPlayerOneColor(Const Value: TColor);
Procedure SetPlayerTwoColor(Const Value: TColor);
Procedure SetHDistance(Const Value: Integer);
Procedure SetVDistance(Const Value: Integer);
Procedure Paint; Override;
Function AddChessMan(X, Y, V: Integer): Boolean;
Procedure MyButtonDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Function Judge(X, Y, V: Integer): Boolean;
Protected
Public
Constructor Create(AOwner: TComponent); Override;
Destructor Destroy; Override;
//
Procedure ReStart;
Function AddP1Chessman(X, Y: Integer): Boolean;
Functi


相关文档:

Delphi 实现程序 动态 类名

1、首先将delphi中Controls单元提取
2、修改Controls单元中如下部分:
procedure TWinControl.CreateParams(var Params: TCreateParams);
begin
FillChar(Params, SizeOf(Params), 0);
with Params do
begin
    Caption := FText;
    Style := WS_CHILD or WS_CLIPSIBLINGS;
&nbs ......

Delphi字符串加密解密函数


Delphi字符串加密解密函数
功能:字符串加密和解密
首先定义一个常量数组
const
      XorKey:array[0..7] of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47); //字符串加密用
在程序里加入以下两个函数,
function Enc(Str:String):String;//字符加密函數 這是用的一個&# ......

Delphi 获取句柄 sendmessage

查找另外一个窗口的句柄: handle := FindWindow(nil,PChar('窗口的标题'));//查到窗体句柄
查找子窗体:childHandle := FindWindowEx(handle,0,'子窗体类','子窗体标题');
另外有个枚举子窗体的API,EnumChildWindows(主创体句柄,@回调函数,用户参数);
用这个函数需要自己写一个回调的函数,比如:
function EnumChil ......

Smarter Records in Turbo Delphi / Delphi 2006

type
TTurboRecord = record
strict private
fNameValue : integer;
function GetName: string;
public
NamePrefix : string;
constructor Create(const initNameValue : integer) ;
property Name : string read GetName;
end;
var
Form1: TForm1;
implementation
{$R *.dfm} ......

Delphi 嵌入汇编 进Ring0 360tray.exe

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TlHelp32;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Pub ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号