Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.04;
Скачать: CL | DM;

Вниз

Добавить событие к классу   Найти похожие ветки 

 
lightix   (2003-08-20 15:39) [0]

Есть класс-потомок TMenuItem:
class TMenuItem2: public TMenuItem
{
public:
__fastcall TMenuItem2(TComponent* c) : TMenuItem(c) {}
__fastcall ~TMenuItem2() {}
};
Как к нему добавить Event нажатия ПРАВОЙ кнопки мыши? для левой есть стандартный event OnClick. Хочется иметь точно такой же, но реагирующий на правую кнопку.
Подскажите как это сделать.


 
Ученик ©   (2003-08-20 23:10) [1]

Не OnRightClick, но правую кнопку ловит

FMenuItem: TMenuItem;

procedure TMainForm.FormContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
begin
if FMenuItem <> nil then
Edit2.Text := FMenuItem.Name
else
Edit2.Text := "nil"
end;

{ скопировано из TCustomForm.WMMenuSelect с запоминанием MenuItem }

procedure TMainForm.WMMenuSelect(var Message: TWMMenuSelect);
var
ID: Integer;
FindKind: TFindItemKind;
begin
with Message do
begin
FMenuItem := nil;
if (MenuFlag <> $FFFF) or (IDItem <> 0) then
begin
FindKind := fkCommand;
ID := IDItem;
if MenuFlag and MF_POPUP <> 0 then
begin
FindKind := fkHandle;
ID := GetSubMenu(Menu, ID);
end;
FMenuItem := Self.Menu.FindItem(ID, FindKind);
end;
if FMenuItem <> nil then
Application.Hint := GetLongHint(FMenuItem.Hint)
else
Application.Hint := ""
end
end;

procedure TMainForm.WMExitMenuLoop(var Message: TWMMenuSelect);
begin
inherited;
FMenuItem := nil
end;


 
Ученик ©   (2003-08-20 23:11) [2]

Дополнение

procedure WMMenuSelect(var Message: TWMMenuSelect); message WM_MENUSELECT;
procedure WMExitMenuLoop(var Message: TWMMenuSelect); message WM_EXITMENULOOP;


 
Zergling ©   (2003-08-21 06:07) [3]

Private
...
Procedure CMKlapanClick(var Message: TMessage); message WM_RBUTTONUP;
...
Protected

procedure TTVKlapan.CMKlapanClick(var Message: TMessage);
...
begin
...
Invalidate;
end;



Страницы: 1 вся ветка

Текущий архив: 2003.09.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.034 c
3-10599
Behemoth
2003-08-13 16:16
2003.09.04
Поможите понять работу с TQuery/TADOQuery.


3-10631
Lamer_of_Delphi
2003-08-13 09:38
2003.09.04
Запрос не выполняется!!!


4-11013
Nick Denry
2003-07-05 20:49
2003.09.04
9x и wm_devicechange. в SDK написано -нет такой мессаги в 9x


1-10813
koks
2003-08-20 10:20
2003.09.04
TXPManifest ?


3-10650
Ден
2003-08-12 13:22
2003.09.04
Как получить доступ к записям сетки DBgrid?