Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-80623
mns
2002-03-11 11:04
2002.03.25
как возвести число в любую степень


6-80649
otari
2002-01-09 10:59
2002.03.25
Как мне откривать кокоинибуть TPC/IP порт


4-80725
Xia
2002-01-25 04:12
2002.03.25
delphi - asm


4-80730
dimich
2002-01-25 13:21
2002.03.25
Текущая раскладка клавиатуры


7-80704
max38
2001-09-21 20:20
2002.03.25
как потстыковать *.exe файл в создоваемое приложение?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский