Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.03 c
14-1083162411
Delphist
2004-04-28 18:26
2004.05.23
Где взять свежию версию RxLib?


1-1084361305
lehich
2004-05-12 15:28
2004.05.23
цикл DateTime


1-1083772275
RiKo
2004-05-05 19:51
2004.05.23
сброс параметров


6-1081075606
Wiz@rd
2004-04-04 14:46
2004.05.23
Proxy


7-1082190027
Sanek_metaller
2004-04-17 12:20
2004.05.23
Отклучение службы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский