Текущий архив: 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.46 MB
Время: 0.01 c