![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Хитрый TPopUpMenu [D5, Win2k]
Dmitrey © (2002-08-12 18:35:00)Очень нужно иметь возможность вибрать элемент TMenuItem, у которого есть дочерние TMenuItem.
Ученик (2002-08-12 20:50:00) [1]Простыми способами не получается, сложными реализуется через установку hook-а на WH_MOUSE,
function MenuItemFromPoint(hWnd: HWND; hMenu: HMENU; ptScreen: TPoint): Integer; stdcall; external "user32.dll";
function MouseProc(nCode : Integer; wParam : WPARAM; lParam : LPARAM) : LResult; stdcall;
begin
if (nCode = HC_ACTION) and (wParam = WM_LBUTTONDOWN) and
(MenuItemFromPoint(Form1.Handle, Form1.I1.Handle, Mouse.CursorPos) = 0) then
ShowMessage("Item Click");
Result := CallNextHookEx(Form1.FHook, nCode, wParam, lParam)
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FHook := SetWindowsHookEx(WH_MOUSE, MouseProc, HInstance, GetCurrentThreadID)
end;
Dmitrey (2002-08-12 19:46:00) [2]Вообще-то подменю всегда должно раскрываться, но выбрать можно и подменю и само меню
Mike Kouzmine (2002-08-12 19:24:00) [3]Наверняка есть свойство, определяющее задержку между открытием и выполнением. Покопай в этом направлении
Ученик (2002-08-12 19:23:00) [4]>Dmitrey
А как разделить когда нужно выбрать, а когда открыть подменю ?
Dmitrey (2002-08-12 19:19:00) [5]Я понимаю что некорректно, но нужно чтобы так можно было выбрать.
Может что посоветуете.
Mike Kouzmine (2002-08-12 19:12:00) [6]Да. Не выходит. Только наоборот Menu2 выбирается, а сабменю не вываливается :)
Skier (2002-08-12 19:11:00) [7]>Dmitrey
Если честно, то это не совсем корректно, оно для того и задумано
чтобы выбирать именно sub-item-ы, это всё равно что кликнуть
на каталоге - он ведь просто раскроется, покажет свои файлы
и усё...точно так же и с твоим Menu2.
Dmitrey (2002-08-12 19:07:00) [8]Ты не понял вопроса.
При наведении на Menu2 вываливается список с SybMenu??, но при этом невозможно выбрать именно Menu2, а не один из его SubMenu
Mike Kouzmine (2002-08-12 18:56:00) [9]Делаешь submenu
Dmitrey (2002-08-12 18:55:00) [10]Да.
И работал именно по клику мышкой.
Skier (2002-08-12 18:53:00) [11]>Dmitrey
> Нужно чтобы пользователь мог выбрать...
Чтобы OnClick работал что ли ?
Dmitrey (2002-08-12 18:42:00) [12]Например: есть PopUpMenu
Menu1
Menu2
|-SubMenu21
|-SubMenu22
--SubMenu23
Нужно чтобы пользователь мог выбрать не только SubMenu?? но и Menu2.
Skier (2002-08-12 18:37:00) [13]>Dmitrey
А в чём проблема-то ?