Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Вниз... вместо override использовать virtual ... Найти похожие ветки
← →
Delphi5.01 © (2004-05-05 20:40) [0]Доброе время суток дельфисты!
Я вот уже больше двух часов перечитываю форум, вопросы похожие на мой задавались но нет полного ответа. А именно: я хочу как бы перекрыть свойство Paint. В форуме советуют вместо override использовать virtual. И обязательно вызывать inherited в противном случае произойдет утечка памяти. Я все так и делаю но у меня мой Paint вообще не срабатывает. Почему может что-то не понял правильно, или где-то можно про это почитать
Спасибо
← →
SPeller © (2004-05-05 20:51) [1]Тебе надо почитать об ООП вообще и о его реализации в Object Pascal"евких объектах и классах.
← →
Jack128 © (2004-05-05 21:00) [2]
> В форуме советуют вместо override использовать virtual.
>
линк можно?? Ибо бред говорят...
> но у меня мой Paint вообще не срабатывает
именно по этому и не срабатывает..
← →
Algol (2004-05-05 21:43) [3]
> вместо override использовать virtual
Оригинальное решение конечно :)))
Использовать нужно именно override.
И не вижу связи inherited с утечкой памяти...
← →
Palladin © (2004-05-05 22:10) [4]
> И не вижу связи inherited с утечкой памяти...
Совсем, совсем? :) А если подумать?
Простейший пример.Type
TMyClass=Class
Private
m_pBuf:Pointer;
Public
Constructor Create;
Destructor Destroy; Override;
End;
Constructor TMyClass.Create;
Begin
GetMem(m_pBuf,1610612736);
End;
Destructor TMyClass.Create;
Begin
FreeMem(m_pBuf);
Inherited;
End;
Type
TMyClass2=Class(TMyClass);
Private
m_pBuf:Pointer;
Public
Constructor Create;
Destructor Destroy; Override;
End;
Constructor TMyClass2.Create;
Begin
GetMem(m_pBuf,10);
End;
Destructor TMyClass2.Destroy;
Begin
FreeMem(m_pBuf);
// а теперь подумай к чему приведет комментиривание Inherited
Inherited;
End;
← →
Palladin © (2004-05-05 22:12) [5]тьфу...
Destructor TMyClass.Destroy; конечно же...
← →
Algol (2004-05-05 22:13) [6]Конструкторы/деструкторы это отдельная песня. Сейчас в .NET вызов конструктора предка вообще обязателен.
Но в паинте я себе слабо представляю утечки памяти из-за inherited %))
← →
Delphi5.01 © (2004-05-05 22:35) [7]2Jack128 vot adres:
http://delphimaster.net/view/11-1083449797/
Chto kasaetsa override to v KOL eto ne dopustimo! Vidoiot o oshibke!
← →
Рамиль © (2004-05-06 08:06) [8]
TMyClass = class(TCustom...)
protected
procedure Paint; ovveride;
...
end;
...
procedure TMyClass.Paint;
begin
inherited;
end;
← →
Delphi5.01 © (2004-05-06 11:17) [9]2 Рамиль:
procedure Paint; ovveride;
^^^^^^
Vidaiot oshibku! :-(
← →
Рамиль © (2004-05-06 11:23) [10]очепятка - override :)
Либо, если написал правильно, нет Paint в родителе
← →
Delphi5.01 © (2004-05-06 13:52) [11]V roditele est Paint, OnPaint sobitie est a znachit i paint no men kajetsa tam ne ukazano
procedure Paint(...); virtual;
^^^^^
Chto ia kak dumaiu i iavlaetsa problemoi!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c