powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
5 сообщений из 5, страница 1 из 1
Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
    #39808840
Фотография kuzduk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет. стала задача такая: итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar

всё сделал вот только не могу получить TAction от итема из PopupMenu, чтоб присвоить этот Action для TActionClientItem.

PopupMenu.Items[i] возвращает TContainedAction а надо бы TAction... помогитя!)


мой код:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
//------------------------------------------------------------------------------ pm_to_mm
procedure pm_to_mm(pm: TPopupMenu; mm: TActionMainMenuBar; mmIndex: integer);
{
pm - PopupMenu итемы из которого подгружаем в менюху ActionMainMenuBar
mm - главное меню ActionMainMenuBar, в менюху которого подгружаем содержимое pm
mmIndex - индекс менюхи в которую будем подгружать итемы
}
begin

mi_to_aci(pm.Items, MM.ActionControls[mmIndex].ActionClient);

end;



//------------------------------------------------------------------------------ mi_to_aci
procedure mi_to_aci(mi: TMenuItem; aci: TActionClientItem);
var
  i: Integer;
  iaci: TActionClientItem;
  MyAction: TAction;

begin


aci.Items.Clear;


for i := 0 to mi.Count - 1
do
begin

  iaci := aci.Items.Add;


//  iaci.Action := mi.Action; //Не присваивается Action!!! Action присвоенный к итему в PopupMenu как его присвоить к TActionClientItem??? Как получить Taction от TBasicAction???
//Прописываем все свойсва не через Action а вручную:
  iaci.Caption := mi.Items[i].Caption;
  iaci.ImageIndex := mi.Items[i].ImageIndex;
  iaci.ShortCut := mi.Items[i].ShortCut;
  iaci.Visible := mi.Visible;
//  iaci.Enabled := mi.Enabled; //aci не имеет свойства Enabled - полюбому придётся присваивать Action
//  iaci.OnClick:= mi.OnClick; //aci не имеет события OnClick - полюбому придётся присваивать Action

//  ShowMessage(mi.Action.Name); //Не возвращает имя акшона



  if mi.Items[i].Count <> 0 //has SUB-items
  then mi_to_aci(mi.Items[i], iaci)

end;


end;
...
Рейтинг: 0 / 0
Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
    #39809238
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuzduk,

Просто action присвоить недостаточно? Вместо всей этой бороды.
...
Рейтинг: 0 / 0
Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
    #39809309
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuzduk,

авторКак получить Taction от TBasicAction?

Taction(Action)?
...
Рейтинг: 0 / 0
Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
    #39809419
Фотография kuzduk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот эта строчка не работает:
iaci.Action := mi.Action;

iaci.Action := TAction; - должно быть указание на TAction


iaci.Action := TAction(mi.Action); - так ошибка лезет.
...
Рейтинг: 0 / 0
Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
    #39809500
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuzduk,

автортак ошибка лезет.

секретная? информации пиши больше. не все все компоненты видели :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как итемы с акшенами из PopupMenu загрузить в TActionMainMenuBar?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]