Форум: "Основная";
Текущий архив: 2002.12.23;
Скачать: [xml.tar.bz2];
ВнизВ чём ошибка??? Найти похожие ветки
← →
^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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c