Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизЧто то пропустил, как так можно делать? Найти похожие ветки
← →
AV © (2012-06-26 09:12) [0]почему это работает?
procedure WMSetText(var Msg : TWMSetText); message WM_SETTEXT;
procedure TMyForm.WMSetText(var Msg : TWMSetText);
begin
inherited; //????
бла-бла
end;
Какой еще inherited?
Откуда известно, куда надо делать inherited?
(
подробнее
http://delphimaster.net/view/2-1340630036/
)
← →
Давайте будем жрать! (2012-06-26 09:20) [1]
> Какой еще inherited?
Стандартный обработчик сообщения.. До или после (в твоём примере) него ты выполняешь какие-то дополнительные действия.
← →
Palladin © (2012-06-26 09:23) [2]читай в справке про "Message Methods"
← →
Ega23 © (2012-06-26 09:23) [3]
> inherited; //????
выполнить у ближайшего предка метод с названием и параметрами, аналогичными текущему.
Что не так?
← →
Ega23 © (2012-06-26 09:24) [4]
> читай в справке про "Message Methods"
О, кстати. Там была какая-то заковыка с inherited. С полгода назад что-то такое проскакивало.
← →
icWasya © (2012-06-26 09:34) [5]>Какой еще inherited?
В случае "Message Methods", например такойprocedure WMSetText(var Msg : TWMSetText); message WM_SETTEXT;
Inherited подразумевает выполнение метода предка не с таким же именем, а с тем же номером сообщения, в данном случае WM_SETTEXT, если такой у предка есть. Если у предка нет такого метода, то не делается ничего.
>Откуда известно, куда надо делать inherited?
Ниоткуда. Это должно быть известно только разработчику метода.
В какой момент и нужно ли вообще вызывать стандартный обработчик - решать автору.
← →
Anatoly Podgoretsky © (2012-06-26 09:47) [6]
> Какой еще inherited?
Нормальный, я уже ответил в начальной теме, inherited к виртуальности отношения не имеет, это относится только к наследованию
> Откуда известно, куда надо делать inherited?
Компилятор знает прародителя и все его методы, тут нет никакой проблемы.
Когда надо указать какой именно метод вызывать, то используется вторая форма inherited имя
и когда еще и другой список параметров то третья форма inherited имя(параметры)
inherited всего лишь макроподстановка имени класса прародителя, более гибко, нет привязки к имени
← →
AV © (2012-06-26 09:55) [7]ясно. Спасибо!
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.072 c