Delphi Изнутри. Урок 9. Класс TObject. Функция InheritsFrom |
Автор megabax | ||||
29.06.2010 г. | ||||
Delphi Изнутри. Урок 9. Класс TObject. Функция InheritsFromПродолжаем копаться во внутренностях TObject. Добрались до InheritsFrom. Данный метод проверяет порожден ли объект от объекта другого типа. Рассмотрим пример использования:
При нажатии на кнопочку с таким обработчиком заголовок форму превратиться в TButton descends from TWinControl: Если мы поставим вместо TWinControl, например, TEdit, то при нажатии на кнопку ничего не произойдет, так как TButton у нас не является дочерним классом от TEdit. А если поставить TButton? Давайте проверим
вот что у нас получилось: Теперь посмотрим, как же реализован этот метод:
Работает этот метод аналогично тому, как реализованный в библиотеке для создания компьютерных игр Easy Game Library метод IsChildOf, об этом я рассказывал в уроке 7. Иными словами, в цикле происходит сравнение заданного класса с текущим. Сначала текущий класс равен самому классу объекта, затем, на каждой итерации берется родительский класс от текущего. И так до тех пор, пока не будет найдено совпадение или не дойдет до вершины иерархии классов. В последнем случае функция вернет false - данный класс не наследуется от заданного. - В чем же разница между InheritsFrom и IsChildOf? - спросите вы. - В том, что в последнем задается имя класса строкой, - отвечу я, - тоесть, по сути дела, пользователь может его ввести с клавиатуры. |
||||
Последнее обновление ( 05.06.2013 г. ) |