Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2013, 18:33   #1
Vratar10
Новичок
Джуниор
 
Регистрация: 28.10.2013
Сообщений: 2
Вопрос Как узнать родительский класс заданного класса?

Т.е. имеется некий edit в него пользователь вводит имя класса, а в label выводится его родительский класс.
На одном форуме мне сказали:


Цитата:
Код:
 
s := 'TButton';
ShowMessage(GetClass(s).ClassParent.ClassName);
(одно "но": класс должен быть зарегистрирован с помощью RegisterClass/RegisterClasses до того, как будет попытка использования GetClass)
Так вот, может быть мне кто-нибудь может объяснить поподробней про регистрацию класса и как это все реализовать? Или другой способ, если таковой имеется.
Vratar10 вне форума Ответить с цитированием
Старый 28.10.2013, 21:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

TButton насколько я понимаю уже зарегистрирован. Ну если конечно кнопка в твой проект включена.
Вот кратко: http://www.coders-library.ru/books-p...sscls5102.html
По памяти так вроде у Тексейры и Пачеко про создания своих классов было написано, можешь попробовать полистать их книгу.

Если не ошибаюсь смысл примерно следующий: Все классы, которые компилятор пришивает к твоей программе, вольно или невольно (т.е. ты о них можешь и не догадываться, но они все равно прикомпилирываются) считаются зарегистрированными. в ЕХЕ файле для них есть целая секция (http://ru.wikipedia.org/wiki/%C4%E8%...E0%ED%ED%FB%F5), в которой описан словами каждый тип (класс), объектов в программе. Я если честно давно не использовал эту фичу, так что сказать что-то особо внятное не смогу, но по мысли должно действовать как-то так:
Код:
var cp:TPersistent;
begin
 cp:=TPersistent(GetClass('TForm1'));
 Caption:=cp.ClassName;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как записать без вложения класса в класс? WIN32APIist Общие вопросы C/C++ 2 26.03.2011 13:37
Как узнать класс окна? ImmortalAlexSan Общие вопросы Delphi 3 01.08.2010 17:11
Delphi. Как записать, что родительский класс-перемещающийся отрезок? Kurai Помощь студентам 0 28.04.2010 21:23
Как узнать, создавался ли уже объект класса? TwiX Общие вопросы Delphi 4 06.10.2009 09:44
Какой родительский класс у формы? werser Помощь студентам 3 12.06.2007 23:15