Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.12.2007, 18:00
Vasch Vasch вне форума
Прохожий
 
Регистрация: 12.12.2007
Сообщения: 1
Репутация: 10
По умолчанию Помогите пожалуйста!!! не могу откомпилировать!!!

Здравствуйте всем! Дали задание написать шахматы. не могу откомпилировать конструктор. Препод не знает в чем ошибка.

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.
Ответить с цитированием
  #2  
Старый 12.12.2007, 20:57
Аватар для Winny
Winny Winny вне форума
Продвинутый
 
Регистрация: 26.05.2007
Адрес: Планета земля, Россия, Москва
Сообщения: 620
Репутация: 30
По умолчанию

Какую дельфи быдаёт ошибку?
__________________

Ответить с цитированием
  #3  
Старый 14.12.2007, 03:26
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Код:
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;

Либо объявите свойства X и Y отдельно, либо присваивайте значение так
Код:
   ...
   mesto := Point(i, j);
   ...

Ну и, чтобы два раза не вставать, зачем вы передаете в конструктоh параметр vid, если вы все равно его создаете внутри конструктора? Может вы хотите его использовать потом вне конструктора - но тогда нужно передавать его по ссылке, иначе он просто бесполезен.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:28.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025