Текущий архив: 2006.07.02;
Скачать: CL | DM;
Вниз
Оператор inherited Найти похожие ветки
← →
Хой (2006-06-13 10:08) [0]Помогите разобраться в исходниках.
Есть обработчик нажатия кнопки в выпадающем меню, в нём следующий текст
procedure TfrmMain.N5Click(Sender: TObject);
begin
inherited;
end;
то есть в процедуре выполняеться единственный оператор inherited
Как мне оъяснили, что это оператор наследования, то есть есть форма предок, а это форма потомок, если есть оператор inherited то сначало выполняються операторы в процедуре предка с одноимённым названием, форму предка можно узнать в описании класса: вот описание TfrmMain = class(TIniForm), следовательно форма предок для формы frmMain являеться IniForm. Открыл модуль формы IniForm но процедуры с названием N5Click не нашёл. Помогите пожалуйста разобраться с оператором inherited, может я что то не так понял, в литературе подробного описания оператора inherited я так и не нашёл. Вобще где искать код выполнения если используеться оператор inherited ? Ведь програма работает, причём этот оператор используеться в програме несколько раз, при этом выполняються разные дейвствия.
← →
DrPass © (2006-06-13 10:16) [1]
> Открыл модуль формы IniForm но процедуры с названием N5Click
> не нашёл.
Если в родительском классе такой процедуры нет, то inherited просто ничего не делает
← →
Desdechado © (2006-06-13 10:18) [2]inherited вызывает выполнение метода с таким же именем, унаследованного от одного (не обязательно от непосредственного, в нем может не быть) из предков класса
← →
Хой (2006-06-13 10:40) [3]Если в родительском классе такой процедуры нет, то inherited просто ничего не делает
-----------------------------------------------
Ну ведь когда я компилирую проект, по нажатию этого пункта меню выполняються выполняються определённые дейвствия.
inherited вызывает выполнение метода с таким же именем, унаследованного от одного (не обязательно от непосредственного, в нем может не быть) из предков класса
------------------------------------------------
У формы TIniForm только один предок Tform, вот код TIniForm = class(TForm).
То есть стандартная форма, из поставки Delphi.
← →
Сергей М. © (2006-06-13 10:47) [4]
> Хой (13.06.06 10:08)
За неимением одноименного метода в классе-предке компилятор попросту молча игнорирует этот самый inherited.
← →
Хой (2006-06-13 11:11) [5]Но програма ведь работает, по нажатию этого пункта меняю, выполняються нужные дейвствия.
← →
Сергей М. © (2006-06-13 11:16) [6]Отладчиком пользоваться умеешь ?
← →
Плохиш © (2006-06-13 12:00) [7]
> Хой (13.06.06 11:11) [5]
> Но програма ведь работает, по нажатию этого пункта меняю,
> выполняються нужные дейвствия.
И при чём здесь procedure TfrmMain.N5Click(Sender: TObject);?
И вообще разводом воняет, т.к. D7 (да и все предыдушие версии) код приведённый в [0] выкинет как мусор при первом же сохранении проекта.
← →
Чапаев © (2006-06-13 12:38) [8]
> D7 (да и все предыдушие версии) код приведённый в [0] выкинет
> как мусор при первом же сохранении проекта.
С чего бы? Сперва попробуй с наследованием форм поработать, тогда говори.
← →
Плохиш © (2006-06-13 13:10) [9]
> Чапаев © (13.06.06 12:38) [8]
>
> > D7 (да и все предыдушие версии) код приведённый в [0]
> выкинет
> > как мусор при первом же сохранении проекта.
>
> С чего бы?
Странно,
у меня D все обработчики событий с одной командой inherited выкидываются.
> Сперва попробуй с наследованием форм поработать, тогда говори.
Может раскажите, как Вы так интересно формы наследуете, что такой мусор получаете?
← →
Хой (2006-06-13 13:55) [10]Короче всё я разобрался, всем спасибо за помощь.
← →
TUser © (2006-06-13 20:08) [11]> Если в родительском классе такой процедуры нет, то inherited просто ничего не делает
Точнее - не компилируется.
← →
evvcom © (2006-06-14 08:47) [12]
> Точнее - не компилируется.
Речь про обработчики. Скомпилится.
Страницы: 1 вся ветка
Текущий архив: 2006.07.02;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.05 c