![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Все знают, что в системе windows все классы строятся на базе предопределенных классах. В связи с этим может мне кто-нибудь сказать, как определить на каком именно предопределенном классе, построен известный мне класс?
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
Ну посмотри иерархию классов VCL, есть такие таблицы...
|
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
Какой именно тебе нужен?
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Задача следующая есть некая программа, написанная на любом языке программирования при щелчке мыши над компонентом мне нужно определить, что это за компонент.
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Ну вообщем Spy++ это неплохо умеет делать.
|
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Используй метод ClassParent. Если ClassParent будет равняться nil, значит текущий класс - TObject.
TObject - это вершина иерархии классов. -------------------- |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: нет Всего: 41 |
Что-то вы о не понятном говорите. В windows нет никакой иерархии классов.
-------------------- Волны гасят ветер... |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Если идёт речь о классах Delphi, то метод ClassName
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Fantasist если нет иерархии, то, как тогда система определяет, как работать с тем или иным компонентом. Может я и не прав, и чего-то не понимаю, но может, кто ни будь объяснить мне как тот же WinSight32 определяет, что компоненту ComboBox пришло сообщение CBN_SELCHANGE, а не LBN_SELCHANGE, хотя они имеют один номер? Буду рад любому мнению любому совету. Можно давать ссылки на информацию, язык не важен пойму.
Речь я виду о классах windows, а не только Delphi. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Dayana |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 352 Регистрация: 6.10.2002 Где: Тель-Авив Репутация: 2 Всего: 4 |
alex-co, существует целая теория о работе операционной системы Windows, о взаимодействиях объектов в ней, о событиях, об обработчике событий. И не надо путать иерархию классов или компонентов в какой либо среде программирования с существованием визуальных и невизуальных объектов в системе. Не система определяет как вести себя объекту и на какие сообщения и события реагировать, а сам объект определяет себя. Система занимается распределением сообщений по очередям. Это зависит от нескольких факторов: откуда пришло сообщение, кто на данный момент активен, ну и т.д. А уже сам объект знает реагировать ему или игнорировать сообщение и отправить его дальше. Вообщем и т.д. и т.п. Это описано во многих книгах по программированию, в том числе и по Delphi. Конкретно не назову литературу, не помню.... :-)
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Еще мнения есть
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| dr.ZmeY |
|
|||
|
Политолог ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3892 Регистрация: 26.3.2002 Где: ..::STALINGRAD::. . Репутация: нет Всего: 60 |
Приложение, использующее графический интерфейс с пользователем, должно иметь, как минимум, одно главное окно приложения. Для того, чтобы создать окно, необходимо вначале зарегистрировать класс окна. Класс окна определяет набор свойств, характерных для всех окон, создаваемых на базе данного класса. В Windows определены стандартные классы окон, используемые для создания стандартных органов управления. Стандартные классы не регистрируются приложением и для них не определяется функция окна, так как эти операции выполняются автоматически при загрузке Windows.
Для регистрации класса окна используется следующая функция API WIN32: ATOM WINAPI RegisterClassEx ( const WNDCLASSEX FAR * lpwcx); В качестве параметра эта функция получает дальний указатель на структуру WNDCLASSEX, которую должно сформировать приложение перед регистрацией класса окна. Вот стандартные классы являющиеся вершинами иерархии: TObject TWinControl TCommonDialog Есть ещё и другие.... API WIN32 представляет собой совокупность более 1000 системных функций. В отличие от MS DOS, где для вызова функций ОС используется механизм программных прерываний, вызов системных функций WIN32 производится по их именам. При этом независимо от языка программирования имена функций, а также входные и выходные параметры остаются неизменными. Ключевую роль в организации работы всех подсистем и приложений Windows играет система сообщений. Сообщение -это структура данных специального вида, которое получает окно для совершения каких-либо действий. Источником сообщений в операционной системе Windows является аппаратура, сама ОС и приложение. Процесс обработки сообщений в ОС Windows происходит следующим образом: при действии пользователя на устройство ввода активизируются программы-драйверы устройств ввода. Драйверы определяют какое именно действие совершил пользователь. Информацию о действии пользователя драйверы передают в поток необработанного ввода (RIT-raw input thread). Основной задачей потока необработанного ввода является определение приложения, для которого предназначено сообщение. Например, если пользователь произвел действие с мышью, то сообщение отправляется тому приложению над чьим окном находился курсор мыши при возникновении событий. Для определения приложений, которым предназначены сообщения клавиатуры используется понятие фокуса ввода(это место, где в данное время мигает курсор для ввода данных). Фокус ввода принадлежит тому окну, которое получит сообщение при действии пользователя на клавиатуру, из потока необработанного ввода сообщение попадает в виртуальную очередь потока. У каждого приложения имеется своя собственная виртуальная очередь потока. Из виртуальной очереди потока сообщение попадает в очередь сообщений потока, помимо сообщений от аппаратуры, в очереди сообщений потока содержатся сообщения от ОС и др. приложений. Прикладная программа извлекает сообщение из очереди сообщений потока и производит их обработку. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 14 Всего: 154 |
Скорее ClassParent. ClassName - имя текущего класса, а ClassParent - имя класса-родителя. -------------------- |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Всем спасибо я все нашел
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |