Главная страница
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
6-10856
Alien
2003-06-24 15:42
2003.09.04
TServerSocket.Socket.SendBuf/ReceiveBuf


9-10536
Gritzan
2002-12-09 23:41
2003.09.04
Построить сферу на OpenGl вручную. не используя glu-товской библе


14-10908
Ixion
2003-08-18 03:44
2003.09.04
Лицензия на программирование ?


3-10651
Жук
2003-08-12 09:45
2003.09.04
Исключение при выполнении параметрического запроса


14-10956
VEG
2003-08-13 17:51
2003.09.04
Дообновлял свою BIOS...