Помогите пожалуйста!!! не могу откомпилировать!!!
Здравствуйте всем! Дали задание написать шахматы. не могу откомпилировать конструктор. Препод не знает в чем ошибка.
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Menus, StdCtrls;
type
TMainForm = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
//------------объявление класса фигура------------
type
Tip1=packed record
X: byte;
Y: byte;
end;
TCol=(black,white);
type
TFigura=class(TObject)
private
vid:TImage;
col:TCol;
i,j:integer;
constructor CreateFigura(col:TCol; vid:TImage; i,j:integer); virtual; abstract;
protected
F1:Tpoint;
function proverka(i,j:integer):Boolean; virtual;
procedure P1(mesto:Tpoint);
property mesto:Tpoint read F1 write P1;
destructor Destroy;
end;
//-------------------объявление класса пешка------------------
type
Tpeshka=class(TFigura)
function proverka(i,j:Integer):Boolean; override;
constructor CreateFigura(col:TCol; vid:TImage; i,j:integer); override;
end;
//-------------------объявление класса ферзь------------------
type
Tferz=class(TFigura)
function proverka(i,j:Integer):Boolean; override;
end;
//-------------------объявление ладьи ------------------
type
Tladia=class(TFigura)
function proverka(i,j:Integer):Boolean; override;
end;
//-------------------объявление коня ------------------
type
Tkon=class(TFigura)
function proverka(i,j:Integer):Boolean; override;
end;
//-------------------объявление слона ------------------
type
Tslon=class(TFigura)
function proverka(i,j:Integer):Boolean; override;
end;
//-------------------объявление короля ------------------
type
Tkorol=class(TFigura)
function proverka(i,j:Integer):Boolean; override;
end;
var
MainForm: TMainForm;
Desk: array[1..8,1..8] of TShape;
KD: array[1..8] of TLabel;
KD1: array[1..8] of TLabel;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
var i, j, t :integer;
begin
//Создаем игровое поле
for i:=1 to 8 do
for j:=1 to 8 do
begin
Desk[i,j]:=TShape.Create(MainForm);
Desk[i,j].Parent:=MainForm;
Desk[i,j].Left:=j*50;
Desk[i,j].Top:=i*50;
Desk[i,j].Width:=50;
Desk[i,j].Height:=50;
//Закрашиваем нужные клеточки
if (i+j) mod 2=0 then Desk[i,j].Brush.Color:=clBlack;
end;
//создаем подписи игрового поля
for t:=1 to 8 do begin
KD[t]:=TLabel.Create(MainForm);
KD[t].Parent:=MainForm;
KD[t].Left:=t*54;
KD[t].Top:=20;
KD[t].Width:=50;
KD[t].Height:=30;
KD[t].Caption:=chr(64+t);
KD1[t]:=TLabel.Create(MainForm);
KD1[t].Parent:=MainForm;
KD1[t].Left:=t*54;
KD1[t].Top:=470;
KD1[t].Width:=30;
KD1[t].Height:=50;
KD1[t].Caption:=chr(64+t);
end;
for t:=1 to 8 do begin
KD[t]:=TLabel.Create(MainForm);
KD[t].Parent:=MainForm;
KD[t].Left:=20;
KD[t].Top:=t*54;
KD[t].Width:=30;
KD[t].Height:=50;
KD[t].Caption:=chr(48+t);
KD1[t]:=TLabel.Create(MainForm);
KD1[t].Parent:=MainForm;
KD1[t].Left:=470;
KD1[t].Top:=t*54;
KD1[t].Width:=30;
KD1[t].Height:=50;
KD1[t].Caption:=chr(48+t);
end;
end;
//------------------реализация класса фигура
function TFigura.proverka(i,j:Integer):Boolean;
begin
end;
procedure TFigura.P1(mesto:Tpoint);
begin
Self.vid.Top:=mesto.x*50;
self.vid.Left:=mesto.y*50;
end;
constructor Tpeshka.CreateFigura(col:TCol; vid:TImage;i,j:integer);
var s:string;
begin
s:=Self.ClassName;
create;
vid:=TImage.Create(MainForm);
vid.Picture.LoadFromFile('');
mesto.X:=i;
mesto.Y:=j;
end;
destructor TFigura.Destroy;
begin
end;
function Tpeshka.proverka(i,j:integer):boolean;
begin
end;
function Tladia.proverka(i,j:integer):boolean;
begin
end;
function Tkon.proverka(i,j:integer):boolean;
begin
end;
function Tslon.proverka(i,j:integer):boolean;
begin
end;
function Tkorol.proverka(i,j:integer):boolean;
begin
end;
function Tferz.proverka(i,j:integer):boolean;
begin
end;
//---------------------при закрытии----------------------------
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var i,j :integer;
begin
// освобождаем переменные
for i:=1 to 8 do
for j:=1 to 8 do
Desk[i,j].Free;
for i:=1 to 8 do begin
KD[i].Free;
KD1[i].Free;
end;
end;
end.
|