Вызовите событие щелчка меню как сценарий, но имя меню во время выполнения является динамическим

У меня есть сетка Datawindow Grid в окне, которое я создал, и один столбец этого DW имеет в качестве данных разные пути меню, которые совпадают с меню и подменю, которые я создал. Дело в том, что когда я дважды щелкаю по каждой строке DW, я хочу выполнить событие clicked другого пути меню, которое хранится как данные в каждой строке. Например, первая строка — «m_epith_frame.m_parms_su.m_poi.m_poi_ergast», вторая — «m_appl_frame.m_1_sb.m_2_sb» и т. д. Я знаю, что когда в сценариях я пишу m_epith_frame.m_parms_su.m_poi.m_poi_ergast.Clicked(), это запускает событие Clicked этого пункта меню и, например, открывает форму... Итак, как я могу щелкнуть каждую строку и вызвать событие clicked для каждого пути меню каждой строки? Это, я полагаю, проблема с динамическим вызовом события, но я не могу найти никакого решения.

заранее спасибо


person sgian76    schedule 05.04.2011    source источник


Ответы (1)


Вы можете рекурсивно использовать меню для создания строкового массива путей меню. В то же время создайте массив пунктов меню и назначьте ему объект menuitem, используя тот же номер индекса массива, что и для строк. Не используйте create, просто назначьте menuitem массиву.

Когда кто-то щелкает строку, найдите индекс пути в массиве строк, а затем вызовите событие щелчка в массиве элементов меню, используя тот же индекс.

Массив пунктов меню содержит указатели на реальные пункты меню в меню, поэтому это то же самое, что щелкнуть пункт меню, например, вы можете кодировать

im_menuitems[li_menuindex].Triggerevent (Clicked!) 

и если это m_epith_frame.m_parms_su.m_poi.m_poi_ergast, то это то, что нажимается.

person Jim    schedule 26.10.2011