Здравствуйте, Tack, Вы писали:
T>Здравствуйте, fetis, Вы писали:
F>>Может стоит посмотреть в VCL, что делается в оригинале при отрисовке пункта меню?
T>Да я бы с радостью! Но нету у меня сорсов! Delphi 7 пиратская, без исходников VCL...
T>К тому же может кто уже на форуме сталкивался, так побыстрее было бы.
Посмотрел я в код. Решения твоей проблемы без исходников нету. Разве что перехватывать Menu месаги самому на форме и обрабатывать их как надо.
Вся проблема в том что при OwnerDraw VCL Menu обрабатывает кнопки само но не совсем корректно. Есть в Forms.pas функция
IsAccel, так вот она сравнивает символы с разными регистрами не используя твоих языковых настроек
function IsAccel(VK: Word; const Str: string): Boolean;
begin
Result := CompareText(Char(VK), GetHotKey(Str)) = 0;
end;
Еее нужно поменять на
function IsAccel(VK: Word; const Str: string): Boolean;
begin
Result := AnsiCompareText(Char(VK), GetHotKey(Str)) = 0;
end;
Дуругими словами, что бы нажать на меню
&Файл небе нужно, кроме то что переключится на русскую расскладку, так еще и Caps-Lock нажать (поднять регистр)
Что бы все заработало тебе необходимо переписать Forms.pas в директорию твоего проэкта и изменить соответствующую функцию.
Удачи.