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

Вниз

В чём ошибка???   Найти похожие ветки 

 
^Sanya ©   (2002-12-13 20:36) [0]

Цель: динамически создать Action и добавить его в ActionMeinMenuBar:
Итог: всё ок, кроме самого добавления... Новый Action отображается в Cusomize, но хотелось бы его сразу программно добавить в Меню.
Решение наверняка простое...
Вот код:


...

procedure TForm1.Button1Click(Sender: TObject);
var
a: TAction;
begin
a := TAction.Create(Self);
with a do
begin
ActionList := ActionManager1;
OnExecute := ActionExecute;
Name := "MyNewAction";
Caption := "Runtime Action";
Category := "Window";
end;
// не знаю, как работать с добавлением , следующая строка выдаёт "Access Violation":
ActionManager1.AddAction(a, ActionMainMenuBar1.ActionClient);
end;

procedure TForm1.ActionExecute(Sender: TObject);
begin
ShowMessage((Sender as TComponent).Name);
end;


Подскажите, пожалуйста.


 
^Sanya ©   (2002-12-13 21:54) [1]

пожааалуйста....
Очень прошу...
Хотя бы где копать, Help мне ответа не дал....
То ли руки кривые, отли что ещё:)


 
^Sanya ©   (2002-12-13 22:37) [2]

неужели это так сложно?


 
^Sanya ©   (2002-12-14 13:34) [3]

пожалуйста, помогите, кто может...


 
Макс Черных ©   (2002-12-14 13:37) [4]

Чтобы добавить что нибудь динамически в ActionMeinMenuBar
для начала надо чтобы там был хотя бы один элемент.
Добавление ClientItem осуществляется с помощью метода

function TCustomActionManager.AddAction(AnAction: TCustomAction;
AClient: TActionClient; After: Boolean): TActionClientItem;


Здесь AClient как раз тот элемент до или после(параметр After) которого мы вставляем свой. Для того, чтобы задать этот самый
AClient есть свои методы. Для примера, допустим у нас есть
actionFile: TAction у которого Caption = "File".
При этом этому actionFile должен быть статически назначен
ClientItem в ActionMeinMenuBar. Так же имеем динамически
созданную a: TAction. Вот имея все это, можем добавлять,
тут есть на выбор 2 варианта
1. Указание места вставки через Caption
ActionManager1.AddAction(a, ActionManager1.FindItemByCaption("File"));
2. Указание места вставки через Name у TAction(после которой вставляем)
ActionManager1.AddAction(a, ActionManager1.FindItemByAction(actionFile));


 
^Sanya ©   (2002-12-14 15:41) [5]


> Макс Черных © (14.12.02 13:37)

Огромное спасибо!



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

Текущий архив: 2002.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
6-74877
Romych
2002-10-24 12:26
2002.12.23
Извините что вопрос немного не в тему UDP


14-74944
_Nicola_
2002-12-02 15:40
2002.12.23
Как получить канал передачи данных с бешеной скоростью?


3-74568
Natalie
2002-12-04 09:33
2002.12.23
проблемы с репортом!!!!!


1-74807
TTCustomDelphiMaster
2002-12-11 15:16
2002.12.23
TAction то работает, то нет.


3-74615
Брат
2002-12-05 11:09
2002.12.23
Почему-то не находит функцию div....