Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как система узнает Tmainmenu?


Автор: Sunvas 9.9.2006, 01:16
Лазя по чужому исходнику я нашел строку-функцию Windows.SetMenu. Первым параметром задается хэндл формы, а вторым хэндл Mainmenu. Таким образом к форме можно прикрепить Tmainmenu. Вот что меня удивило: все параметры - хендлы.
Возник вопрос: как программа узнает, что это именно хэндл menu, и почему не работает эта функция, когда я указываю хэндл например кнопки?
Иными словами: что делает класс на основе TComponent действительно Mainmenu?

Автор: Snowy 9.9.2006, 07:28
Хэндл - всего лишь число, идентифицирующее ранее созданный виндой объект.
Объектом управляет винда. У неё есть все данные. По ним она и работает.
Соответственно она никак не может работать с меню по данным кнопки, т.к. это не меню.
Чтобы меню было меню, нужно, чтобы её хэндля был получен функцией CreatMenu.
Именно этой функцией винда создаёт меню и возвращает хэндл меню.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)