Вниз
Скачать: 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.024 c
14-1083828472
Sour
2004-05-06 11:27
2004.05.23
Object Inspector


3-1083161344
Ega23
2004-04-28 18:09
2004.05.23
Ещё раз про Access


4-1081416983
Игорь
2004-04-08 13:36
2004.05.23
Помогите разобраться с Drag&Drop


3-1082149737
lockheed_man
2004-04-17 01:08
2004.05.23
поиск записи в таблице


6-1080724295
Hooch
2004-03-31 13:11
2004.05.23
Simple MAPI, имена аттачментов




   Наверх