Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
ВнизРабота с классами в Delphi Найти похожие ветки
← →
dimmu (2002-03-06 10:06) [0]Добрый день, Мастера! У меня довольно банальный вопрос по классированию в Delphi, а именно по работе с представителями класса.
Вообще говоря, этот материал я намного лучше помню по C++, а классирование в Turbo Pascal"е прошло мимо меня :-)
Так вот, если не сложно - в двух словах: замечания по нижележащему фрагменту (пример объявления класса, плюс конструктор и функция которая не видит представителя класса, передоваемого по ссылке) и (если Вас не затруднит – какие-то рассуждения по вопросу в целом.
PCellLetter=^TCellLetter;
TCellLetter = class(TObject)
Letter:char;
CellUp:PCellLetter;
CellDown:PCellLetter;
CellRight:PCellLetter;
CellLeft:PCellLetter;
....
constructor Create; overload;
destructor Destroy;
....
procedure SetCoord(Init_x,Init_y:integer);
protected
x,y:integer;
end;
....
constructor TCellLetter.Create;
begin
Letter:=char(0);
CellUp:=nil;
CellDown:=nil;
CellRight:=nil;
CellLeft:=nil;
x:=-1;
y:=-1;
end;
procedure TCellLetter.SetCoord(Init_x,Init_y:integer);
begin
if (x<0) or (x>4) or (y<0) or (y>4) then Exit;
x:=Init_x;
y:=Init_y;
end;
//Вот здесь-то и нужны пояснения:
//либо я неправильно создаю объект, либо нельзя таким
//образом присваивать указатели. Насколько я
//помню из C++, там надо было перегружать оператор
//присваивания, создавать второй экземпляр и копировать поля.
//посоветуйте, что делать здесь - при вызове функции
//SetCoord происходит ошибка в месте где присваиваются
//x и y.
var PCell:PCellLetter;
...
PCell:=Pointer(TCellLetter.Create(Letter,Move));
if (Head=nil) then
begin
Head:=PCell;
Head.SetCoord(x,y);
Result:=Head;
Exit;
end;
Посоветуйте - где найти какой-нибудь классический пример на работу с классами в Delphi - с динамическим выделением памяти, передачей педставителя класса в функцию, работой со ссылками и т.д.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c