ну типа, правой кнопкой щелкаем на эдите - и вылазит - вставить, вырезать, етц. ток нужно это глобально, чтоб во всех эдитах работало. типа своего обработчика. на сях желательно, хотя код не важен - нужен концепт. так что на любом языке впринципе, ес есть инфа...
есть такая тема как саббклассинг (контроль сообщений окон путем модификации оконной процедуры последних) и суперклассинг (создание и регистрация нового класса окна в системе). вот хорошая статья на wasm [1] [2] и вроде не плохая для delphi ну это я вижу решение этой проблемы в создании собственного элемента окна... возможно есть другие пути... но я точно уверен что эта тема сработает )
примеры на C#. имхо самый простой способ это в RunTime привязать. Примерно так: PHP: public void SetMenu() { foreach (Control control in Controls) { if (control is TextBox) { (control as TextBox).ContextMenu = new ContextMenu(new[] { new MenuItem("button1"), new MenuItem("button2")}); } } } Либо наследоваться от контрола и в конструкторе сделать привязку. PHP: public class MyClass : TextBox { public MyClass() { this.ContextMenu = new ContextMenu(new [] {new MenuItem("button1"), new MenuItem("button2")}); } } было 666 сообщений
Я бы сделал свой класс наследник Edit'а. А дальше меняй/дописывай что хочешь. И юзай свой класс. на C# Code: public class MyEditBox : System.Windows.Forms.TextBox IMHO самый простой способ, если только уместно создавать свой класс..
в C++Builder или Delphi Есть такой замечательный компонент TPopupMenu, а у всех Tedit'ов есть замечательное свойство PopupMenu для подключения к эдиту TPopupMenu.... кидаеш на форму TPopupMenu заполняеш ему итемы выделяеш все едиты и в поле свойств PopupMenu выбираеш компонент PopupMenu1 теперь у всех выделенных едитов будет появляться твое меню.... и обрабатываться тобой) p.s. возможно я не ясно понял вопрос, но если я его понял правильно то это легкое решение... p.p.s. если же едитов очень много то лучше написать класс основанный на Tedit и сразу в классе подключить popupmenu с определёнными полями и зарание предустановленной обработкой событий
нее вы не поняли. это вообщемто atl получается. вот нашел похожее - но там встраивание в контекстное меню в оболочке. а мне аналогичное встраивание во все обработчики comctl
да если честно, я не понял поэтому погадаю немного): http://www.rsdn.ru/article/qna/controls/editpret.xml Еси опять не то, тогда сорри.
ну ващет туда (если ты вообще про глобальное меню) добавляется из реестра. http://www.prjsoft.ru/rus/windows/contextmenu.php http://bbs.vbstreets.ru/viewtopic.php?p=57055#57055 http://faq.pp.ru/html/delphi_for_professionals/glava31/index6.html если ты про это )
Я конечно в хуках неочень шарю.Но ИМХО надо перехватывать вызовы контекстного меню от всех эдитов в системе и подменять потом указатель на свое попап меню.Вот в принципе и весь концепт.