-
У меня есть список объектов
TSingleObj = class
Graph : TBitmap;
procedure Create(PGraph : TBitmap); virtual; procedure Destroy;
end;
TMoreObject = class(TObject)
public procedure Create; virtual; procedure Destroy; virtual; procedure add(place : TBitmap); //procedure delete(index : word);
end;
TVisualObject = class(TMoreObject)
imgh : array of TImage; base : TWinControl;
procedure Create; procedure Destroy;
private procedure Draw; procedure Clear;
public procedure Paint(baseo : TWinControl);
end;
....
procedure TMoreObject.Create; begin SignleObjCnt := 0; end; ....
procedure TVisualObject.Create; begin inherited Create; end;
и после из другого модуля я вызываю метод create от объкта TVisualObject, и он пишет мне ошибку в процессе выполнения программы.
Если вам не сложно, скажите в чем я ошибся, а также скажите где бы почитать про ООП в delphi.
Заранее благодарен.
-
Мне так каатся, что надо бы тебе объявить конструктор, а не процедуру.
-
>и после из другого модуля я вызываю метод create от объкта TVisualObject >Мне так каатся, что надо бы тебе объявить конструктор, а не процедуру. Я мне кажется, по изложенному вообще трудно судить о чем-либо. Но ясно, что если метод своим именем перекрывает предопределенный конструктор, класс должен бы иметь как минимум новый конструктор с другим именем. Хотя лучше метод Create не называть. То же - и касательно Destroy.
-
Думаю что ошибка из-за того что ты объявил в TMoreObject конструктор с директивой virtual. Попробуй написать override. Скорее всего в TObject конструктор и так уже виртуальный...
-
Спасибо всем я нашел причину.
|