Главная страница
    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.46 MB
Время: 0.007 c
1-74679
KMI
2002-12-12 13:13
2002.12.23
Разбивка листа Excel на страницы


6-74868
NOE
2002-10-28 15:22
2002.12.23
Время на удаленной машине


1-74722
AlexVit
2002-12-13 17:25
2002.12.23
Прога запускается как процесс и не дает окна


1-74831
VitGun
2002-12-11 18:17
2002.12.23
Memo с картинками


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