Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
1-74754
Supreme
2002-12-13 12:54
2002.12.23
Цикл для назначения свойств множеству компанент.


1-74767
Андрей М
2002-12-10 23:55
2002.12.23
Фейс ХР


3-74602
xenon
2002-12-04 15:46
2002.12.23
Обработка сообщений сервера


14-74950
ssssss
2002-12-03 02:34
2002.12.23
как придиалапится к XP?


3-74575
kiko
2002-12-04 16:05
2002.12.23
Помогите с запросом





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