Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

... вместо 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
14-1083670916
Galera
2004-05-04 15:41
2004.05.23
Страсти христовы


1-1084286649
glGLU
2004-05-11 18:44
2004.05.23
PopupMenu


1-1083866041
grover
2004-05-06 21:54
2004.05.23
Какой virtual-key code для PageDown


11-1072285336
SAGE
2003-12-24 20:02
2004.05.23
Компиляция KOL 1.88 под FPC???


1-1084032461
Мыш
2004-05-08 20:07
2004.05.23
Отрисовка меню