JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

TMenuItem

- визуальный компонент
Компоненты JS+
Определяет пункт главного или всплывающего меню.

Создание объекта

mnuItmObj=new TMenuItem(MenuObj);

mnuItmObj=MenuObj.Add(Caption);

Собственные свойства
Свойство Тип Описание
AutoCheck Boolean связать свойство Checked с выбором пункта меню
AutoHotkeys Enum способ слежения за уникальностью клавиш быстрого доступа (см. ниже)
AutoLineReduction Enum способ удаления лишних разделителей между пунктами меню (см. ниже)
Bitmap TBitmap дескриптор изображения, связанного с пунктом меню (игнорируется при установке свойства ImageIndex)
Break Enum вариант переноса пунктов меню, начиная с текущего (см. ниже)
Caption String текст пункта меню
Checked Boolean пункт меню отмечен
Default Boolean пункт меню является элементом по умолчанию
Enabled Boolean пункт меню разрешен для выбора (по умолчанию)
GroupIndex Number идентификатор группы пунктов
HelpContext Number идентификатор контекста помощи пункта меню
ImageIndex Number индекс изображения, связанного с пунктом меню, в списке Images корневого компонента
MenuIndex Number индекс пункта меню в списке Items родительского пункта (меню)
RadioItem Boolean пункт меню является переключателем, при этом все пункты меню, имеющие одинаковое значение свойства GroupIndex, объединяются в группу связанных переключателей
ShortCut Number дополнительная комбинация клавиш быстрого доступа для пункта меню, получаемая с помощью системной функции Shortcut
SubMenuImages TImageList список изображений для дочерних пунктов меню
Только чтение
Command Number уникальный идентификатор пункта меню
Count Number количество дочерних пунктов меню
Handle Number дескриптор меню Windows GDI (при наличии дочерних пунктов)
Items[] TMenuItem индексированный список дочерних пунктов
Parent TMenuItem родительский пункт меню

Свойство AutoHotkeys
Значение Описание
maAutomatic автоматическое слежение, не требующее какого-либо участия
maManual программное слежение собственными силами
maParent способ, установленный родительским пунктом

Свойство AutoLineReduction
Значение Описание
maAutomatic автоматическое удаление, не требующее какого-либо участия
maManual программное удаление собственными силами
maParent способ, установленный родительским пунктом

Свойство Break
Значение Описание
mbNone без переноса (по умолчанию)
mbBreak перенос в следующий столбец
mbBarBreak перенос в следующий столбец через вертикальный разделитель

Собственные методы
Метод Описание
Clear очищает список дочерних пунктов меню
Click имитирует щелчок мыши на пункте меню
Delete удаляет дочерний пункт меню с указанным индексом
Find ищет дочерний пункт меню с указанным заголовком
GetImageList возвращает список, содержащий изображение, связанное с пунктом меню
HasParent сообщает, имеет ли пункт родительское меню
IndexOf возвращает индекс указанного дочернего пункта меню в списке Items
Insert вставляет дочерний пункт меню в указанную позицию списка Items
InsertNewLineAfter вставляет разделитель после указанного дочернего пункта меню
InsertNewLineBefore вставляет разделитель перед указанным дочерним пунктом меню
IsLine сообщает, является ли пункт меню разделителем
NewBottomLine вставляет разделитель в конец списка дочерних пунктов меню
NewTopLine вставляет разделитель в начало списка дочерних пунктов меню
Remove удаляет указанный дочерний пункт меню
RethinkHotkeys при необходимости перестраивает клавиши быстрого доступа дочерних пунктов меню
RethinkLines при необходимости удаляет лишние разделители в списке дочерних пунктов меню

Стандартные методы

Собственные события
Событие Описание
OnClick произошел клик мышью по пункту меню
OnAdvancedDrawItem требуется отрисовка пункта меню в различных состояниях
OnDrawItem требуется отрисовка пункта меню
OnMeasureItem требуется указать размеры пункта меню
Пример 1 (JS+)
// Главная форма
frm=new TForm();
frm.Caption="JS+ - визуальный компонент TMenuItem";
frm.Width =525;
frm.Height=375;

// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=" Выбирайте пункты меню";

// Главное меню формы
mnm=new TMainMenu(frm);

// Список изображений
iml=mnm.Images=new TImageList(mnm);

// Пункты главного меню
icn=new TIcon();
for (i=1;i<=5;i++) {
  mi1=new TMenuItem(mnm);
  mi1.Caption="Раздел "+i;
  mi1.OnClick=mni_Click;

  icn.LoadFromFile(JSPlus.HelpDir+"IMAGE\\TMainMenu\\"+(i-1)+".ico");
  iml.AddIcon(icn);

  for (j=1;j<=i;j++) {
    mi2=new TMenuItem(mi1);
    mi2.Caption="Элемент "+i+"-"+j;
    mi2.ImageIndex=j-1;
    mi2.OnClick=mni_Click;
  }
}
icn.Delete();

frm.ShowModal();

// Обработчик события OnClick
function mni_Click(mni)
{
  var mni_Str=mni.Caption.replace("&","");

  stb.SimpleText=" Выбран "+mni_Str;
  if (mni_Str.indexOf("-")>0)
    alert(stb.SimpleText);
}
Пример 2 (JS+)
var stb_Text=" Кликните правой кнопкой мыши в области формы";

// Главная форма
frm=new TForm();
frm.Caption="JS+ - визуальный компонент TMenuItem";
frm.Width =450;
frm.Height=300;

// Строка состояния
stb=new TStatusBar(frm);
stb.SimpleText=stb_Text;

// Всплывающее меню
pum=frm.PopupMenu=new TPopupMenu(frm);
pum.Images=new TImageList(pum);
pum.OnPopup=pum_Popup;

for (i=0;i<5;i++) {
  mni=new TMenuItem(pum);
  mni.Caption="Пункт "+(i+1);
  mni.ImageIndex=i;
  mni.OnClick=mni_Click;

  // Иконка
  icn=new TIcon();
  icn.LoadFromFile(JSPlus.HelpDir+"IMAGE\\TPopupMenu\\"+i+".ico");
  pum.Images.AddIcon(icn);
  icn.Delete();
}

frm.ShowModal();

// Обработчик события OnClick
function mni_Click(mni)
{
  alert(" Выбран "+mni.Caption);
  stb.SimpleText=stb_Text;
}

// Обработчик события OnPopup
function pum_Popup(pum)
{
  var x=pum.PopupPoint.x,y=pum.PopupPoint.y;

  stb.SimpleText=" Всплытие меню в точке: "+x+","+y;
}
Примечание
Если значение свойства Caption содержит амперсанд (&), то следующий за ним символ является акселератором, т.е. соответствующий пункт меню выполняется при нажатии комбинации клавиш Alt+символ. Если значение свойства Caption состоит из одного символа тире (-), то соответствующий пункт служит горизонтальным разделителем между предыдущим и последующим пунктами меню.
Совместимость
C++ Builder/Delphi
См. также
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/Common/TMenuItem.htm
© 2024,