Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.032 c
4-1081006648
Kor@l
2004-04-03 19:37
2004.05.23
Удаление


1-1083765570
Sergo742
2004-05-05 17:59
2004.05.23
Некорректное удаление компонента


3-1083225759
Stupid
2004-04-29 12:02
2004.05.23
Как отобрать записи из Т1 для которых нет записей в Т2?


1-1084021864
vk220
2004-05-08 17:11
2004.05.23
Как отключить отладку стандартных модулей


1-1084020840
Kair
2004-05-08 16:54
2004.05.23




   Наверх