СообЧа > База Знаний > Программирование > Delphi

Вопрос

Почему не работает передача данных по OLE в русский Excel?

Ответ

Дело в том что в 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 должен понимать нормальные английские команды. Hеобходимая комбинация для установки английского языка взята из C-шных хедеров (h-файлов).

Из конференции Delphi



Copyright © 2000-2004 Сообщество Чайников
Контактная информация