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

Вниз

Хитрый TPopUpMenu   Найти похожие ветки 

 
Dmitrey   (2002-08-12 18:35) [0]

Очень нужно иметь возможность вибрать элемент TMenuItem, у которого есть дочерние TMenuItem.


 
Skier ©   (2002-08-12 18:37) [1]

>Dmitrey
А в чём проблема-то ?


 
Dmitrey   (2002-08-12 18:42) [2]

Например: есть PopUpMenu
Menu1
Menu2
|-SubMenu21
|-SubMenu22
--SubMenu23
Нужно чтобы пользователь мог выбрать не только SubMenu?? но и Menu2.


 
Skier ©   (2002-08-12 18:53) [3]

>Dmitrey

> Нужно чтобы пользователь мог выбрать...


Чтобы OnClick работал что ли ?


 
Dmitrey   (2002-08-12 18:55) [4]

Да.
И работал именно по клику мышкой.


 
Mike Kouzmine   (2002-08-12 18:56) [5]

Делаешь submenu


 
Dmitrey   (2002-08-12 19:07) [6]

Ты не понял вопроса.
При наведении на Menu2 вываливается список с SybMenu??, но при этом невозможно выбрать именно Menu2, а не один из его SubMenu


 
Skier ©   (2002-08-12 19:11) [7]

>Dmitrey
Если честно, то это не совсем корректно, оно для того и задумано
чтобы выбирать именно sub-item-ы, это всё равно что кликнуть
на каталоге - он ведь просто раскроется, покажет свои файлы
и усё...точно так же и с твоим Menu2.


 
Mike Kouzmine   (2002-08-12 19:12) [8]

Да. Не выходит. Только наоборот Menu2 выбирается, а сабменю не вываливается :)


 
Dmitrey   (2002-08-12 19:19) [9]

Я понимаю что некорректно, но нужно чтобы так можно было выбрать.
Может что посоветуете.


 
Ученик ©   (2002-08-12 19:23) [10]

>Dmitrey
А как разделить когда нужно выбрать, а когда открыть подменю ?


 
Mike Kouzmine   (2002-08-12 19:24) [11]

Наверняка есть свойство, определяющее задержку между открытием и выполнением. Покопай в этом направлении


 
Dmitrey   (2002-08-12 19:46) [12]

Вообще-то подменю всегда должно раскрываться, но выбрать можно и подменю и само меню


 
Ученик ©   (2002-08-12 20:50) [13]

Простыми способами не получается, сложными реализуется через установку 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;



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

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

Наверх




Память: 0.49 MB
Время: 0.019 c
14-71344
Anatoly Podgoretsky
2002-07-24 21:15
2002.08.22
На землю летит двухграммовый астероид


4-71421
МитяЙ2
2002-06-14 13:21
2002.08.22
Перезагрузка - это...


14-71343
melifaro
2002-07-26 19:52
2002.08.22
Чего-чего там на землю летит?


1-71172
Nazareth
2002-08-12 10:15
2002.08.22
DBChart, как он меня достал!!!


6-71282
KPY
2002-06-11 06:14
2002.08.22
Помогите с алгоритмом