|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Вызов контекстного меню в Edit'e другой программы
Увожаемые может ктонить подсказать каким образом добавить свой пункт в контекстное меню вызываемое в Edit'e другой программы?
Вот собственно код того что я делаю... Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,Menus; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } procedure WinMSG(var Msg:TMsg;var Handled:Boolean); procedure DoWhatEver; Function EnumProc(h:HWND):BOOL; stdcall; end; var Form1: TForm1; implementation {$R *.dfm} //**********************Моё*********************// const ItemID=99; Procedure TForm1.WinMSG(var Msg:TMsg;var Handled:Boolean); begin if Msg.message=WM_SYSCOMMAND then if Msg.wParam = ItemID then DoWhatEver; end; //*******************************************// //***********EnProc**********/// Function TForm1.EnumProc(h:HWND):BOOL;stdcall; begin Application.OnMessage:=WinMSG; AppendMenu(GetSystemMenu(h,false),MF_SEPARATOR,0,''); AppendMenu(GetSystemMenu(h,False),MF_BYPOSITION,ItemID,'My Menu'); EnumProc:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin EnumWindows(@EnumProc, 0); //<--- вот здесь возникает не ясная ошибка end; procedure TForm1.DoWhatEver; begin ShowMessage('00000'); end; end. lmikle: Хде теги?!! Незнаю правильно ли я делаю проверить пока не удалось Последний раз редактировалось Erl, 10.04.2009 в 11:02. |