Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2012, 09:00   #1
cpv
 
Регистрация: 11.12.2012
Сообщений: 5
По умолчанию Многоточия в Delphi

Вот робот в окне - About
http://md5summer.org/download.html
Вот исходник робота.
http://luke.pascoe.net.nz/tools.html

Можно пояснить человеческим языком, что делают эти участки кода?
Мне особенно непонятно вот эти
TMazeCell(TObjectList(Cells[Col])[Row]) // из участка кода 1
и это
TMazeCell(ParentMaze.CellStack[ParentMaze.CellStack.Count - 2]).CellToCanvas
//из участка кода 2
и это
ParentMaze.BiasMap.Canvas.Pixels[FCol, FRow]
//из участка кода 3

участок кода 1
function TMaze.GetCell(Row, Col: Integer): TMazeCell;
begin
Result := Nil;
if (Col < Cells.Count) and (Row < TObjectList(Cells[Col]).Count) then
Result := TMazeCell(TObjectList(Cells[Col])[Row]);
end;

участок кода 2
//procedure TMazeCell.MakeMove
// Redraw the last cell
if ParentMaze.CellStack.Count >= 2 then
TMazeCell(ParentMaze.CellStack[ParentMaze.CellStack.Count - 2]).CellToCanvas;

участок кода 3
//procedure TMazeCell.MakeMove
if ParentMaze.BiasMap.Canvas.Pixels[FCol, FRow] = 0 then
cpv вне форума Ответить с цитированием
Старый 14.12.2012, 12:37   #2
cpv
 
Регистрация: 11.12.2012
Сообщений: 5
По умолчанию

А что означает когда функция разделяется точкой с процедурой?
GetCell(Dir).CellToCanvas
GetCell(Dir) функция
CellToCanvas процедура

if ParentMaze.Mode = mmGenerating then
begin
Delay(ParentMaze.MinGenDelay);

case Dir of
dirUp:
begin
TopWall := False;
GetCell(Dir).CellToCanvas;
end;

dirDown:
begin
BottomWall := False;
CellToCanvas;
end;

dirLeft:
begin
LeftWall := False;
GetCell(Dir).CellToCanvas;
end;

dirRight:
begin
RightWall := False;
CellToCanvas;
end;
end;
end
else
Delay(ParentMaze.MinSolveDelay);
cpv вне форума Ответить с цитированием
Старый 14.12.2012, 12:49   #3
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Непонятно где там исходник скачать, лучше его приложить к теме.
Код тегом CODE лучше оформлять.

Цитата:
А что означает когда функция разделяется точкой с процедурой?
GetCell(Dir).CellToCanvas
GetCell(Dir) функция
CellToCanvas процедура
Вероятно, функция возвращает объект, а затем идет обращение к его методу.

Цитата:
Мне особенно непонятно вот эти
TMazeCell(TObjectList(Cells[Col])[Row]) // из участка кода 1
Скоррее всего, Cells это TObjectList, элементами которого являются тоже TObjectList, получается что-то вроде двухмерного массива, и путем такого приведения типов из него достается ячейка.
Без полного исходника точно не сказать, но скорее всего это так.

Чтобы разобраться в этом коде, попробуйте почитать, например, эту книгу.

Последний раз редактировалось Armorer; 14.12.2012 в 13:06.
Armorer вне форума Ответить с цитированием
Старый 14.12.2012, 17:29   #4
cpv
 
Регистрация: 11.12.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Armorer Посмотреть сообщение
Непонятно где там исходник скачать, лучше его приложить к теме.
Вот исходник - на картинке лабиринта
http://luke.pascoe.net.nz/Components.zip

За пояснения спасибо

Последний раз редактировалось cpv; 14.12.2012 в 17:40.
cpv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism savva-paladin Софт 18 02.10.2010 20:24
Замена многоточия одной точкой в строке S. Карась Помощь студентам 9 18.01.2008 18:13
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как избавиться от многоточия в TsListView dimfil Компоненты Delphi 5 03.12.2007 09:57
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54