Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

Хитрый 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-71083
Сережа
2002-08-12 11:01
2002.08.22
Упаковщик exe файлов


14-71371
blackman
2002-07-23 17:31
2002.08.22
Что делают люди в последний час перед уходом в отпуск ?


14-71305
F-71
2002-07-26 10:20
2002.08.22
TCanvas3D_HELP!


14-71303
IlyaA
2002-07-25 08:35
2002.08.22
Учение Свет; Неучение Тьма


14-71307
Igit
2002-07-26 10:03
2002.08.22
Анкетные данные





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский