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

Вниз

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

 
AlexanderMS ©   (2006-07-11 17:37) [0]

Совсем запутался. Помогите, пожалуйста.


 
AlexanderMS ©   (2006-07-11 17:59) [1]

Не так написал: как во время RunTime хотел спросить.


 
Loginov Dmitry ©   (2006-07-11 18:29) [2]

Если в существующий пункт меню, тогда можно вот-так:


unit MainFrm;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ActnList, XPStyleActnCtrls, ActnMan, ToolWin, ActnCtrls,
 ActnMenus, StdCtrls;

type
 TMainForm = class(TForm)
   ActionMainMenuBar1: TActionMainMenuBar;
   ActionManager1: TActionManager;
   Action1: TAction;
   Button1: TButton;
   procedure Action1Execute(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }  

   procedure OnActionExitClick(Sender: TObject);
 public
   { Public declarations }
 end;

var
 MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.Action1Execute(Sender: TObject);
begin
 Beep;
end;

procedure TMainForm.Button1Click(Sender: TObject);
var
 MyAction: TAction;
begin
 MyAction := TAction.Create(Self);

 with MyAction do
 begin
   Caption := "Выход";
   OnExecute := OnActionExitClick;
 end;

 ActionManager1.AddAction(MyAction, ActionManager1.FindItemByCaption("Файл").Items[0]);
end;

procedure TMainForm.OnActionExitClick(Sender: TObject);
begin
 Close;
end;

end.


А как с нуля - Х.З. Уж больно все там запутанно!


 
AlexanderMS ©   (2006-07-11 18:58) [3]

Не работает! При попытке "развернуть" пункт (у меня - "&Tools") выскакивает ошибка!

> Уж больно все там запутанно!

Ещё бы! Кто такое выдумал! Форма -> View as Text - и там этих Item"ов и категорий!


 
Мефисто   (2006-07-11 20:14) [4]

var
   A: TAction;
   ACI: TActionClientItem;

begin
 A := TAction.Create(ActionManager1);
 A.Caption := "Test";
 ACI := ActionManager1.ActionBars[0].Items.Add; // К TActionManager подцеплен TActionMenuBar
 A.OnExecute := Button1Click; // Если событие не назначено - TAction не активен
 ACI.Action := A;
end;


 
AlexanderMS ©   (2006-07-12 08:20) [5]

Мефисто: Не помогает! Там если взглянуть на иерархию (через View as Text), то окажется, что категория Tools находится здесь:

ActionManager.ActionBars[4].Items[4]

и выглядит так:

         item // это, получается, - ActionManager.ActionBars[4].Items[4]
           Items = <
             item // один пункт. Нужно добавить ещё один.
               Action = MShowMSSM
               Caption = "MShowMSSM" // не обращать внимание на Caption. Оно меняется в RunTime.
               ImageIndex = 8
             end>
             // очевидно перед <  должен попасть новый пункт.
           Caption = "&Tools"


И нужно в эти Items добавить пункт.
Но там нет никакого Add.


 
Мефисто   (2006-07-12 20:06) [6]


> AlexanderMS ©   (12.07.06 08:20) [5]


Обрати внимание на свойства коллеций в инспекторе объектов.
Там есть:
TActionClients; - группа меню (выпадающее меню)
TActionClientItem; - пункт меню

Вот, по аналогии с примером выше и пробивайся :)
Т.е. получается так:

var
  A: TAction;
  ACI: TActionClientItem;
begin
A := TAction.Create(ActionManager1);
A.Caption := "Test";
ACI := ActionManager1.ActionBars[0].Items[0].Items.Add; // К TActionManager подцеплен TActionMenuBar
A.OnExecute := Button1Click; // Если событие не назначено - TAction не активен
ACI.Action := A;
end;

ActionBars[0] - подцепленная TActionMainMenuBar
Items[0] - индекс группы меню (Edit - 0, Help - 1)

Вот я так понимаю, такое меню?

http://slil.ru/22918325 - GIF 4kb



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

Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
15-1151989980
Ega23
2006-07-04 09:13
2006.07.30
С Днём рождения! 4 июля


2-1152130244
KaLLeKa
2006-07-06 00:10
2006.07.30
Проблема с программой...


4-1145135285
Vovanchik
2006-04-16 01:08
2006.07.30
Создание формы в чужом окне


15-1151655445
Ломброзо
2006-06-30 12:17
2006.07.30
Плагин к IE или Opera


2-1152699297
Pavor
2006-07-12 14:14
2006.07.30
Самопроизвольно меняется массив?





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