Re[3]: EnableMenuItem
От: Sergei I. Gorelkin Россия  
Дата: 16.08.05 05:40
Оценка:
Здравствуйте, mighty, Вы писали:

M>Здравствуйте, wellwell, Вы писали:


W>>А может в этой чужой проге, просто проверяется некий внутренний фланг в MenuItem.OnClick:

M>Речь идет о Delphi. Я сам создал приложение (Form1) на нем расопложил меню и сделал недоступным один из его пунктов(в его обработчике выдаю сообщение showmessage('Готово')) и запустил его.А потом создал второе приложение с кнопкой, событие по которой я привел. Все как будто нормально, и пункт подсвечивается, будто активным становится, но событие не срабатывает, сообщение не появляется..Больше того, я сделал меню и во втором приложении, даже в нем, если я ищу его через чистый API (wnd:=FindWindow(nil,'Form2')) происходит тоже самое.

Для программы на Дельфи через WinAPI так не сделать. Нужно внедриться в адресное пространство процесса, получить там указатель на объект TMenuItem, соответствующий нужному пункту меню, и вызвать TMenuItem.SetEnabled (опять же, как-то определив адрес этой процедуры). Имхо, требуемые для этого усилия явно не стоят того, чтобы заниматься этим со своими программами — проще реализовать некий собственный механизм изменения пунктов меню.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.