Вверх ↑
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2010-07-01 15:32:54 ЛС | профиль | цитата
Нужно было сделать свое главное меню в программе, решил сделать с помощью компонента MenuEx. В скрытых точках нашел пункт doIdxCheck (ставитснимает флажок с индексом ARG(Index,State) ), решил проверить его работу таким образом: code_19164.txt, на что оно мне ответило фигой, сначала думал я что-то не так делаю, полез в коды XPMenus.pas, нашел нужный метод:
#pas
procedure TXPMenu._work_doIdxCheck;
var
Idx: integer;
begin
Idx := ReadInteger(_Data,_data_Index,_prop_Index);
if (Menu.Count > 0) and (Idx >= 0 ) and (Idx < Menu.Count) then
if Menu.ItemChecked[Idx] then
Menu.ItemChecked[Idx] := ReadBool(_Data);
end;
И сразу все стало понятно, зачем там проверка if Menu.ItemChecked[Idx] В описании точки об том, что метод работает только при уже с флажком пункте меню, ни слова (тем более что остальные методы doIdxXXXX работают без этого условия, что видно в исходниках), лечится стандартным закомментированием или удалением полностью этой проверки, вопрос только в заливании на SVN
карма: 10
1
файлы: 1code_19164.txt [917B] [220]
Голосовали:nesco