Смекни!
smekni.com

Помощь в обучении программированию (стр. 3 из 3)

Перекрытие виртуальных методов для реализации конкретной фигуры (например TThreeCellFigure23) осуществляется следующим образом:

AfterInit LeftLimit:=1 DownLimit:=1 Установка значений отступов для данной фигуры. влево на единицу и вниз на единицу
CheckEach Proc(Xabs,Yabs-1)and Proc(Xabs,Yabs)and Proc(Xabs-1,Yabs) Вызов процедуры Proc для конретных ячеек. Обычно вызываются процедуры для этих ячеек по рисованию, стиранию, проверки отсутствия в данной ячейке другой фигуры. Для данной фигуры ячейками относящимися к данной фигуре являются ячейки расположенные относительно базовой 1) на одну ниже по Y, 2) в том же месте что и базовая 3) на одну левее по X
GetTwinFigure if AlongClock then GetTwinFigure:=TThreeCellFigure30 else GetTwinFigure:=TThreeCellFigure12 Если вращение вдоль часовой стрелки то фигурой-близнецом будет TThreeCellFigure30
Если против часовой то TThreeCellFigure12
SetBaseCell Cell.Color:=RandomColors[25]; Cell.TextureNum:=26 Установка определенных значений для текста и текстуры фигуры данного типа

Для остальных фигур перекрытие осуществляется аналогично.

TOptionsForm - класс формы настроек. Включает в себя такие объекты как:

MainPageControl; Закладки (TPageControl*) Расположен на форме настроек, включает в себя закладки (tabFigures)
tabFigures Закладка (TTabSheet*) Расположена на MainPageControl, содержит на себе (FiguresListView)
FiguresListView Просмотр списков (TListView*) Предназначен для отображения списка фигур используемых в проекте и расстановки им свойства разрешения использования при генерации
FiguresImageList список изображений (TImageList*) Содержит список изображений используемый списком (FiguresListView) для отображения пиктограмм фигур

(* - помечены стандартные объекты Delphi)

методы:

InitData Помещает данные о разрешенных фигурах в список, отображаемый на форме
DoneData Берет данные о разрешенных фигурах из списка, отображаемого на форме

TFigureInfo - запись содержащая информацию о фигуре используемой при случайной генерации

Fig TFigure Тип одной из существующих фигур
Enabled Boolean Определяет разрешено ли создание данной фигуры
FigureHint string Наименование фигуры, для отображения в форме настроек. Если пусто фигура самостоятельно не отображется, а считается что она является близнецом для описанной выше
Icon integer Индекс иконки в списке иконок для отображения в форме настроек

TFigureEnumManager - класс управляющий массивом записей типа TFigureInfo. Включает в себя следующие методы:

GetExistingFigure(Index:integer) Получение информации об определенной фигуре
LoadFiguresInfo(Reg:TRegistryDef) Запись в реестр (registry) для сохранения настроек между сеансами работы
SaveFiguresInfo(Reg:TRegistryDef) Чтение из реестра
GetIndexByName(const Name:ShortString) Получение индекса фигуры в массиве по ее имени
GetAmount Получение общего числа фигур в массиве
CreateRandomFigure Получение фигуры случайным образом