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

Вниз

Добавить ContextMenu в подменю попупа   Найти похожие ветки 

 
ttt   (2013-03-12 14:43) [0]

Добрый день.

Имеется IContextMenu и TPopupMenu в который нужно добавить его как подменю.

Как реализовать? И возможно ли отловить момент показа этого самого подменю и только тогда "заполнить"?


 
Ega23 ©   (2013-03-12 15:03) [1]


>  И возможно ли отловить момент показа этого самого подменю



unit Unit35;

interface

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

type
 TForm35 = class(TForm)
   procedure OnMenuItemClick(Sender: TObject);
   procedure PopupMenuOnPopup(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   popMenu: TPopupMenu;
 public
   { Public declarations }
 end;

var
 Form35: TForm35;

implementation

{$R *.dfm}

procedure TForm35.FormCreate(Sender: TObject);
begin
 popMenu := TPopupMenu.Create(Self);
 popMenu.AutoHotkeys := maManual;
 popMenu.OnPopup := PopupMenuOnPopup;
 Self.PopupMenu := popMenu;
end;

procedure TForm35.OnMenuItemClick(Sender: TObject);
begin
 ShowMessage((Sender as TMenuItem).Caption + " clicked");
end;

procedure TForm35.PopupMenuOnPopup(Sender: TObject);
var
 itm: TMenuItem;
 i: Integer;
begin
 popMenu.Items.Clear;
 for i := 1 to 10 do
 begin
   itm := TMenuItem.Create(popMenu);
   itm.Caption := Format("Menu Item %d", [i]);
   itm.OnClick := OnMenuItemClick;
   popMenu.Items.Add(itm);
 end;
end;

end.


 
Rouse_ ©   (2013-03-12 15:07) [2]

Конечно можно, перед непосредственным TrackPopupMenu делай с ним что угодно. Посмотри вот этот пример: http://rouse.drkb.ru/winapi.php#syspopup


 
ttt   (2013-03-12 15:16) [3]

Не совсем то. Вот уже PopupMenu "красуется" на экране, и в какой-то момент пользователь наводит на "Показать подменю >". Я заполняю это самое подменю из IContextMenu и отображаю.

Не буду ходить вокруг да около. Пример реализации есть в опере. Там, выбрав одну из загрузок, отобразится попуп с последним пунктом "Дополнительно". Дополнительно – стандартное меню файла из экплорера. Судя по подвисанию, оно подгружается в момент отображения. Но это не критично, можно добавить и во время отображения всего попупа. Вот бы знать как (первый вопрос темы).


 
Rouse_ ©   (2013-03-12 15:48) [4]

А, т.е. вопрос в моменте отображение именно дополнительного сабменю.
Ну чтож, это тоже есть у меня, изучай :)
http://rouse.drkb.ru/other.php#fwmenuex


 
Дмитрий С ©   (2013-03-13 10:51) [5]

Событие onclick для пункта меню.



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

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

Наверх




Память: 0.47 MB
Время: 0.006 c
11-1248364961
Jon
2009-07-23 20:02
2014.01.05
Label, Editbox and Mnemonic


15-1374222419
Vasa777
2013-07-19 12:26
2014.01.05
крипто


2-1362916640
Павел Калугин
2013-03-10 15:57
2014.01.05
Куда DecimalSeparator в XE3 запихали?


15-1374046196
Юрий
2013-07-17 11:29
2014.01.05
С днем рождения ! 17 июля 2013 среда


15-1374264388
Smile
2013-07-20 00:06
2014.01.05
С днем рождения!