Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Как правильно создать ActionList в run-time?


Автор: EKoshelev 27.4.2015, 16:14
Создаю всё так:
Код

  FActionList := TActionList.Create(Form);
  FAction := TAction.Create(Form);
  FAction.ActionList := FActionList;

На FAction вешаю горячие клавиши (ради ГК с экшенами всё и затеял)

У меня есть главная форма и дочерние. На главной всё пашет. На дочерних - нет. То есть, если на экшене главной вешаю действие на F1 и на дочерней действие связано с F1, то экшен дочерней формы не срабатывает. Если на дочернюю вешаю другую клавишу, то всё срабатывает. Короче, если не перекрываются, то ок, иначе работает только на главной форме.

Если всё создавать в design-time, то работает и на главной и на дочерних, но мне надо в run-time.

Обнаружил, что если созданные мною экшены кидать на созданные в дизайне экшен-листы, то всё пашет. Если наоборот, кидать дизайновские экшены на созданные в ран-тайме листы, то не пашет. Делаю вывод, что я неправильно создаю листы. Но как надо - хз.

Пытался сравнивать по свойствам то, что создаю я с тем, что создаётся в дизайне - расхождения типа: разное имя, разные GetNamePath и т. п. Т. е. классы получаются вроде как одинаковые.

Короче, не знаю уже что и придумать.

Автор: EKoshelev 27.4.2015, 18:19
Задрался я, конечно.

Если всё создавать сначала для дочерних, а потом только для главной, то вроде пашет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)