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

Вниз

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

Наверх





Память: 0.45 MB
Время: 0.001 c
2-1362983894
Jonis_84
2013-03-11 10:38
2014.01.05
символ: byte , из edit


15-1372929518
DVDRe
2013-07-04 13:18
2014.01.05
Выбор девайса для заметок


15-1374042598
Юрий
2013-07-17 10:29
2014.01.05
С днем рождения ! 16 июля 2013 вторник


2-1362656908
ttt
2013-03-07 15:48
2014.01.05
MCI.Free


15-1374420692
ClawClaw
2013-07-21 19:31
2014.01.05
Чей шахматный стиль вам больше всего по душе?





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