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

Вниз

OnClick на SubMenu не работает?   Найти похожие ветки 

 
***Evil***   (2009-05-12 01:09) [0]

Здраствуйте уважаемые мастара!!!
Возникла проблема
Есть всплывающее меню(PopupMenu) в нем есть несколько уровней итемов. Так вот на тех итемах в которых есть дочерные субитемы событие OnClick срабатывает не при клике а при розварачиваннии дочерных обектов. Собственно вопрос такой можна зделать так чтобы события OnClick работало только при фмзическом клике?


 
Германн ©   (2009-05-12 01:52) [1]


> OnClick на SubMenu не работает?
>
> ***Evil***   (12.05.09 01:09)
>
> Здраствуйте уважаемые мастара!!!
> Возникла проблема
> Есть всплывающее меню(PopupMenu) в нем есть несколько уровней
> итемов. Так вот на тех итемах в которых есть дочерные субитемы
> событие OnClick срабатывает не при клике а при розварачиваннии
> дочерных обектов. Собственно вопрос такой можна зделать
> так чтобы события OnClick работало только при фмзическом
> клике?
>

У всех OnClick работает нормально.


 
***Evil***   (2009-05-12 02:19) [2]

Ну нормально он работает только если нет дочерных обьектов....
Попытаюсь показать на примере:

==Главная ветвь==>>==Второй уровень==>>==Третий уровень
        ^^^                          ^^^                         ^^^
---------------------------------------------          ^^^
Вот здесь OnClick работает только при                    ^^^
розварачивание меню, физ клик не работает           ^^^
                                                                         ^^^
                                                     ----------------------------------
                                                     А здесь все работает...


 
Германн ©   (2009-05-12 02:23) [3]


> ***Evil***   (12.05.09 02:19) [2]
>
> Ну нормально он работает только если нет дочерных обьектов.
> ...
> Попытаюсь показать на примере:

А нормальный пример привести?


 
***Evil***   (2009-05-12 02:35) [4]

Код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Menus;

type
 TForm1 = class(TForm)
   PopupMenu1: TPopupMenu;
   test11: TMenuItem;
   test21: TMenuItem;
   test31: TMenuItem;
   procedure test11Click(Sender: TObject);
 private
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.test11Click(Sender: TObject);
begin
 if (Sender is TMenuItem) then
   ShowMessage((Sender as TMenuItem).Caption);
end;

end.

Форма:
object Form1: TForm1
 Left = 0
 Top = 0
 Caption = "Form1"
 ClientHeight = 269
 ClientWidth = 485
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "Tahoma"
 Font.Style = []
 OldCreateOrder = False
 PopupMenu = PopupMenu1
 PixelsPerInch = 96
 TextHeight = 13
 object PopupMenu1: TPopupMenu
   Left = 184
   Top = 160
   object test11: TMenuItem
     Caption = "test1"
     OnClick = test11Click
     object test21: TMenuItem
       Caption = "test2"
       OnClick = test11Click
       object test31: TMenuItem
         Caption = "test3"
         OnClick = test11Click
       end
     end
   end
 end
end


 
***Evil***   (2009-05-12 02:36) [5]

Или вот еще картинка __http://evil.bobrovica.org.ua/test3.jpg


 
Игорь Шевченко ©   (2009-05-12 02:58) [6]

а не надо OnClick на подменю вешать - его задача - разворачивать дочерние элементы. Не надо пугать пользователя, а то он убежит навсегда.


 
***Evil***   (2009-05-12 03:14) [7]


> Игорь Шевченко ©   (12.05.09 02:58) [6]
> а не надо OnClick на подменю вешать - его задача - разворачивать
> дочерние элементы. Не надо пугать пользователя, а то он
> убежит навсегда.


Да вот я думаю он не испугается )))
Просто через менюшку будет реализовано "Копировать в ..." вот для этого мне и нужен OnClick на под меню... А каким образом собственно заставить его кликатся пока не придумал... пробывал проверять была ли нажата кнопка мыши через GetKeyState(VK_LBUTTON) без результатно... (((


 
Игорь Шевченко ©   (2009-05-12 03:30) [8]


> Просто через менюшку будет реализовано "Копировать в ...
> " вот для этого мне и нужен OnClick на под меню...


Не нужно OnClick на подменю. Насчет мыши - советую учесть, что с меню работают не только мышью, а еще и с клавиатуры.


 
***Evil***   (2009-05-12 03:39) [9]


> Не нужно OnClick на подменю. Насчет мыши - советую учесть,
>  что с меню работают не только мышью, а еще и с клавиатуры.
>

Ну мне не обезательно OnClick мне нужен сам факт физического клика, и да нужна не только мышь... но как этот клик(нажатия) отловить? Хуки ставить?
Может кто-то што-то посоветует по этой теме...


 
Palladin ©   (2009-05-12 07:44) [10]

Зачем он тебе нужен то, можешь по человечески сказать?


 
Юрий Зотов ©   (2009-05-12 08:49) [11]

> ***Evil***   (12.05.09 03:14) [7]

> через менюшку будет реализовано "Копировать в ..." вот для этого мне и
> нужен OnClick на под меню...

Чтобы через менюшку реализовать "Копировать в ..." никакого OnClick на подменю вовсе не требуется.


 
Плохиш ©   (2009-05-12 11:16) [12]

Есть подозрение, что он ms офиса насмотрелся и хочет сделать по образу :-)


 
AIK ©   (2009-05-12 11:56) [13]


> Плохиш ©   (12.05.09 11:16) [12]
> Есть подозрение, что он ms офиса насмотрелся и хочет сделать
> по образу :-)


Может быть оно и так, но вопрос действительно интересный
Ведь вроде на меню никакого клика не происходит а событие OnClick все ровно происходит


 
***Evil***   (2009-05-12 14:43) [14]


> Есть подозрение, что он ms офиса насмотрелся и хочет сделать
> по образу :-)

Ну нет не в Ms это точно если память не изменяет мне то такую фичу я видел в линуксах а точнее в KDE кстате фича довольно удобная

> Чтобы через менюшку реализовать "Копировать в ..." никакого
> OnClick на подменю вовсе не требуется.

А можна пример какой-то а то у меня уже мозг кипит

> Зачем он тебе нужен то, можешь по человечески сказать?

Ну на примере того же линукса,,, очень удобно когда ты хочеш скопировать(переместить файл) и в древовидной менюшке сразу можна указать директорию назначения...



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

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

Наверх




Память: 0.51 MB
Время: 0.018 c
3-1223084788
wardoc
2008-10-04 05:46
2009.06.28
Доступ к защищенной БД с помощью компонентов ADO


2-1242141595
webpauk
2009-05-12 19:19
2009.06.28
Добавить элемент в Set


15-1240382718
Mulber
2009-04-22 10:45
2009.06.28
Минимизация формы без возможности восстановления


2-1241679286
ocean
2009-05-07 10:54
2009.06.28
Заполнить форму PDF


15-1239906098
Kolan
2009-04-16 22:21
2009.06.28
«Интерфейс пользователя» → Инфоскроллер