Не работает передача данных по OLE в русский Excel
|
Мёpтвый диск не жyжжит,
Мёpтвый сидиpом не поёт,
Мёpтвый компьютеp игpy запyскать не идёт,
Только мёpтвый компьютеp игpy запyскать не идёт...
|
A: (SM): Дело в том что в VCL твои команды OLE2 передаются Excel'у в русском
контексте (не знаю, как это правильно назвать). Для исправления необходимо найти
в файле OLEAUTO.pas в функции GetIDsOfNames строчку
if Dispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount,
LOCALE_SYSTEM_DEFAULT, DispIDs) <> 0 then
|
и заменить ее на
if Dispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount,
((LANG_ENGLISH+SUBLANG_DEFAULT*1024)+SORT_DEFAULT* 65536 ),
DispIDs) <> 0 then
|
После этого у меня Excel стал понимать нормальные английские команды :)).
Необходимая комбинация для установки английского языка взята из C-шных хедеров.
|