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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.11.2007, 23:38
electric electric вне форума
Прохожий
 
Регистрация: 13.11.2007
Сообщения: 5
Репутация: 10
По умолчанию Создание своего класса в Delphi 7

Здравствуйте!
мне нужно создать класс фигура для шахматной доски
шахматная доска готова
состоит из 64ёх панелек))
сейчас класс выглядит вот так:
Код:
TFigure=Class(TObject)
  Private
        Color:Boolean;
        TypeFigure:String;
        ImgFigure:TImage;
  Protected
        DestroyFigure:Boolean;
        OcheredHodaFigure:Boolean;
  Private
  Function GetCoordFigure:TPanel;
  Procedure SetCoordFigure(const Value:Tpanel);
  public
         Property CoordFigure:TPanel
                             read GetCoordFigure
                             write SetCoordFigure;
         
  Public
  Function GetHodFigure:TPanel;
  Procedure SetHodFigure(a:TPAnel);
           

  Private
  constructor Fcreate (Coord:Tpanel);
  end;
подскажите почему у меня ошибка там где красное?
и что я вообще сделал не так или неправильно?
прошу помочь в разработке.
спасибо!
Ответить с цитированием
  #2  
Старый 14.11.2007, 12:17
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

А что за ошибка? Может, это первая ошибка, а есть и другие? Впечатление такое, что после объявления функции надо дать её реализацию в разделе implementation:
Код:
  Function TFigure.GetCoordFigure:TPanel;
  begin
  end;
Я так сделал и ошибка исчезла
Ответить с цитированием
  #3  
Старый 14.11.2007, 12:52
electric electric вне форума
Прохожий
 
Регистрация: 13.11.2007
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexSku
А что за ошибка? Может, это первая ошибка, а есть и другие? Впечатление такое, что после объявления функции надо дать её реализацию в разделе implementation:
Код:
  Function TFigure.GetCoordFigure:TPanel;
  begin
  end;
Я так сделал и ошибка исчезла
покажи пожалуйста если можешь куда втыкнуть этот класс в этой доске
спасибо)
Вложения
Тип файла: zip Шахматы.zip (7.6 Кбайт, 29 просмотров)
Ответить с цитированием
  #4  
Старый 14.11.2007, 12:57
electric electric вне форума
Прохожий
 
Регистрация: 13.11.2007
Сообщения: 5
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexSku
[CODE
Function TFigure.GetCoordFigure:TPanel;
begin
end;
[/code]
Я так сделал и ошибка исчезла
а я так сделал и ошибка появилась на слове begin =)
Ответить с цитированием
  #5  
Старый 15.11.2007, 12:07
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Во-первых, пиши, пожалуйста, что за ошибка.
Во-вторых, опять осенило. Такая ошибка будет, если описание до implementation, а не после. (ответ на последний вопрос.)
Ответить с цитированием
  #6  
Старый 15.11.2007, 12:28
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Цитата:
куда втыкнуть этот класс в этой доске
Не специалист я по шахматам, но дам несколько советов.
1). Нумерацию строк делай не сверху вниз, а снизу вверх.
2) Если класс заранее объявлен (или есть ссылка на модуль, где он объявлен uses...), то его можно воткнуть как поле в другой класс:
Код:
type
  TFigure = class
  end;

  TFigColor = (fWhite, fBlack);

  TDoska = class (TObject)
  private
    mass:array [0..7,0..7] of TPanel;
    Figures: array[TFigColor, 1..16] of TFigure;
  protected
  public
    Constructor Create();
  end;

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FDoska: TDoska;
  public
    { Public declarations }
  end;
3). Надо бы предусмотреть в свойствах фигуры, на доске она или нет. Можно набор фигур рассматривать не как массив, а как множество.
4) Советую начать игру с одной фигурой у белых и одной у чёрных, иначе долго будешь реализовывать.

Последний раз редактировалось AlexSku, 19.11.2007 в 10:02.
Ответить с цитированием
  #7  
Старый 15.11.2007, 19:52
electric electric вне форума
Прохожий
 
Регистрация: 13.11.2007
Сообщения: 5
Репутация: 10
По умолчанию

...спасибо
Ответить с цитированием
  #8  
Старый 18.11.2007, 15:48
electric electric вне форума
Прохожий
 
Регистрация: 13.11.2007
Сообщения: 5
Репутация: 10
По умолчанию

подскажите пожалуйста как загрузить картинку и указать для неё координаты?
Ответить с цитированием
  #9  
Старый 20.11.2007, 12:08
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Советую ещё попрактиковаться с готовыми решениями Drag&Drop и Docking. Надо только выставить логические условия. Во-первых, курсор сам принимает вид руки во время переноса (шах. фигуры) и вид запрета, если на какое-то поле нельзя ходить. Во-вторых, объект цепляется к сетке. А сетки есть в StringGrid, DrawGrid, ListView (ViewStyle=vsIcon).
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter