Главная страница
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.016 c
3-10566
Карелин Артем
2003-08-14 17:21
2003.09.04
Посоветуйте путь решения задачи.


1-10733
Miralex
2003-08-20 10:27
2003.09.04
События OnEdit OnClick и OnDragOver


1-10829
DDDeN
2003-08-21 14:33
2003.09.04
Загрузка и выгрузка из TImageList


9-10539
Sword-Fish
2002-10-19 01:23
2003.09.04
Создание 3D игр на GLScene


3-10640
Rav
2003-08-12 19:05
2003.09.04
---|Ветка была без названия|---