Главная страница
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.024 c
3-1083090923
Михалычъ
2004-04-27 22:35
2004.05.23
Передвижение по полям


4-1081091618
Wiz@rd
2004-04-04 19:13
2004.05.23
WH_KEYBOARD


8-1078845098
incm
2004-03-09 18:11
2004.05.23
Как рисовать на TIcon


7-1082100061
i2e
2004-04-16 11:21
2004.05.23
Серийный номер (опять)


6-1081235446
+Evgen+
2004-04-06 11:10
2004.05.23
Soket