|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
OleContainer и msword - сменить раскладку
Привет.
Проблема - не меняется раскладка клавы, после загрузки MS Word (или другого MS Office приложения в OleContainer). a.OleContainer1.CreateObjectFromFile('G:\Doc1.doc' ,false); a.OleContainer1.DoVerb(ovSHow); Как только делаю DoVerb и в контейнере появляется открытый документ, то раскладка не меняется стандартной виндовой комбинацией (alt+shift или както по другому...) Пробовал регистрировать в приложении свою собственную комбу клавиш (hotkey): Код:
procedure TForm1.WM_HotKeyHandler (var Message: TMessage); var idHotKey: integer; fuModifiers: word; uVirtKey: word; begin idHotkey:= Message.wParam; fuModifiers:= LOWORD(Message.lParam); uVirtKey:= HIWORD(Message.lParam); if (fuModifiers = mod_alt) and (uVirtKey = VK_RIGHT) then begin caption:='Alt- -> нажато'; ActivateKeyboardLayout(0,HKL_NEXT); end; inherited; end; и вызов: keyid:=GlobalAddAtom('My Hotkey'); RegisterHotKey(handle,keyid,MOD_ALT,VK_RIGHT); Комба срабатывает, но раскладка не меняется Пробовал перехватывать нажатие клавиш (через hook) - срабатывает, но опять раскладка не хочет меняться. Если например делать OleContainer.Visible := False , то раскладка меняется, но когда делаю его видимым, то пропадает панель инструментов ВОРДовская... Вообще понять не могу что за напасть... гугл по этому поводу молчит Помогите! Последний раз редактировалось Admin, 20.05.2009 в 20:16. |
#2
|
|||
|
|||
Начиная с Делфи 2007 - моя проблема отсутствует. Исходный код у OleContainer в 7ом делфи и в 2007-2009 - одинаковый. Проблема в VCL..
|