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

Вниз

Добавить новый подпункт в пункт меню 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
2-1152622159
Neo Trinitron
2006-07-11 16:49
2006.07.30
dbf --> MSSQL


2-1152204491
dest81
2006-07-06 20:48
2006.07.30
Ibquery


15-1151593052
cyborg
2006-06-29 18:57
2006.07.30
Сайтом delphigfx кто нибудь может заняться?


3-1148483626
Некто
2006-05-24 19:13
2006.07.30
Упрощение запроса


6-1142939066
_Mike_
2006-03-21 14:04
2006.07.30
Наиболее мощный Ping-компонент.