PDA

Просмотр полной версии : Димнамическое меню


Vitaliy-55
21.03.2009, 07:01
Доброго времени суток!!! Подскажите пожалуйста, каким образом можно выдернуть caption строки из динамического контекстного меню? Оч надо!!!!!!!!!! Заранее спасибо.

slesh
21.03.2009, 11:48
Тебе нужно знать дискриптор этого меню. Если знаешь то просто всё.

var
buf:array[0..255] of char;
menu:hmenu;
x,y:integer;
begin
menu:= дискриптор меню
y:=GetMenuItemCount(menu);
for x:=0 to y-1 do
begin
GetMenuString(menu,x,buf,256,mf_ByPosition);
memo1.lines.add(buf);
end;


Если нужно продолжить выдирать из вложеного меню, то делаешь
GetMenuItemInfo(Menu: HMenu; ID, Flags: Word; Info:TMenuItemInfo)ж
и тогда Info.hSubMenu - будет дискриптором вложенного меню, с которым делаешь всё также что и с предыдущем.

Главное чтобы твоё меню было уже вызвано. т.е. вызываешь его, находиш его дискриптор и вперед

slesh
21.03.2009, 11:53
P.S. т.е. меню динамическое, то и заполняется при своём появлении, так что дискрипторы будут разные всегда.

Vitaliy-55
21.03.2009, 13:45
slesh, Спасибо те! Помог здорово!

Vitaliy-55
21.03.2009, 13:51
Еще вопрос. Как во время открытия динамического меню, проверить базу на наличие данных в ячейке?

Vitaliy-55
21.03.2009, 13:54
и если ячейка не пуста, тогда отметиь пункт меню(TMenuItem.checked)???

slesh
21.03.2009, 20:56
и если ячейка не пуста, тогда отметиь пункт меню(TMenuItem.checked)???

CheckMenuItem юзай