Я добавляю кнопки панели инструментов динамически на основе файла настроек. Я хотел бы назначить TAction им. На данный момент я добавил событие OnClick с обработчиком OnExecute, но если действие отключено, кнопка панели инструментов автоматически не отключается, например, TMenuItems добавляется во время разработки.Как назначить TAction для кнопки панели инструментов во время выполнения?
Иными словами, я хотел бы иметь версию времени исполнения, назначающую TAction, с помощью раскрывающегося меню «Действие» в среде IDE.
Вот что я сделал до сих пор (код C++, но очевидно, что он делает).
TToolButton *b;
b = new TToolButton(ToolBar1);
b->Action = Form1->ActionManager1->Actions[0];
b->Parent = ToolBar1;
Это добавляет кнопку в ToolBar и, похоже, выполняет действие с включенным/отключенным состоянием, но при нажатии ничего не происходит. Как добавить действие правильно и полностью?
Я попробовал это (см. Код выше), но он не реагирует на событие OnClick, либо я назначил его неправильно при добавлении кнопки или что-то еще, что нужно сделать. Небольшая часть примера кода будет очень полезной. – Coder12345
Прекрасно работает для меня, используя точный код, который вы указали. Событие 'TAction.OnExecute' запускается при нажатии кнопки« TToolButton ». –
Я пробовал с небольшой тестовой программой, и это работает и для меня. Должно быть, я перепутал что-то еще с более крупной программой, где он не работает, и, вероятно, назначил OnClick где-то, где я не смотрел. Спасибо за помощь. – Coder12345