Переименование TAction для другой формы
У меня есть 2 формы, которые я хотел бы разделить на одну единственную TActionManager
и присвоенную TAction
- s.
Первая форма является основной формой-она держит TActionManager
, TAction
с подписью "действие".
Главное меню Form1 имеет свойство action and menuitem caption, равное "Action A". Form2 включает в себя Form1, а также присваивает действие menuitem и заголовок устанавливается в "действие B".
Во время проектирования все выглядит хорошо-пункты меню названы "действие а" и "действие в" в Форме1 и форме2, и то же самое действие является назначенный. Он также отлично работает во время выполнения (OnExecute правильно обрабатывается для обеих форм).
Однако-во время выполнения элемент меню Form1 имеет заголовок "действие A", а Form2 имеет заголовок "действие", как и заголовок действия.
Я включаю их неправильно, можно ли включить Form1 на Form2, чтобы поделиться действием и изменить заголовок? Это ошибка в D2010 / CB2010?
Пример:
- создайте Form1 и Form2 и добавьте главное меню в оба
- переместите TActionManager в Form1 и создайте в нем Action1.
- назначить пункт меню в Form1 Action1 и после этого изменить заголовок (заголовок теперь отображается жирным шрифтом, указывая на изменение от значения по умолчанию)
- назначьте пункт меню в Form2 также Action1 (из Form1 TActionManager), а также измените заголовок по умолчанию.
- во время выполнения теперь Form1 изменил заголовок (отличается от Action1.Caption), И Form2 имеет идентичный заголовок к Action1.Подпись хотя подпись должна быть быть новым значением, измененным в шаге 4.
2 ответа:
Я воспроизвел ваш вопрос, и действительно, это странное поведение. Помимо очевидного вопроса, зачем менять заголовки пунктов меню, должны работать следующие :
Задайте для свойства
Action
обоих пунктов меню одно и то же действие. Теперь заголовки пунктов меню связаны с заголовками действия и обратите внимание, что они больше не сохраняются (они не выделяются жирным шрифтом в инспекторе объектов). Затем измените заголовки пунктов меню на независимые значения и обратите внимание, что они теперь запоминаются и то, что пункты меню действительно меняются соответствующим образом во время разработки., но во время выполнения, заголовок второго пункта действительно следует, что вновь действия. На мой взгляд, этого не должно произойти.
Чего я не воспроизвел, так это невозможности изменить его во время выполнения. Как и ожидалось, работает следующее (Здесь D7):
procedure TForm2.FormCreate(Sender: TObject); begin mnuAction1.Caption := 'Action B'; end;
Вы уверены, что меняете заголовок пунктов меню вместо заголовка действия?