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

Вниз

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

Наверх





Память: 0.49 MB
Время: 0.004 c
15-1240614017
Городской Шаман
2009-04-25 03:00
2009.06.28
В Украине официально узаконили взятки.


2-1240985406
Лёша
2009-04-29 10:10
2009.06.28
Locate в отфильтрованных данных


2-1241637084
Pauk
2009-05-06 23:11
2009.06.28
Как пользоваться LoadString?


2-1242203918
ply
2009-05-13 12:38
2009.06.28
как узнать установлены ли в системе программы?


15-1240333035
Nic
2009-04-21 20:57
2009.06.28
Мозговой штурм





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский