Форум: "Начинающим";
Текущий архив: 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