Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Методы и Свойства COM объекта [D7]


Страницы:   1 2

Bleed ©   (2005-12-23 14:52:00) 

Есть небезызвестная фирма 1С, котороая написала COM-сервер своей платформы.
Одна из занятных фич этой платформы - возможность писАть код на родном языке - русском.
Соответственно можно использовать русские названия методов и свойств COM объекта 1C.
Возможность закончилась на Delphi 7
Последующие продукты (8, 2005 и 2006) стратежно переползли на юникод и исходники работающие в 7ке перестали работать в последущих версиях.

Симптомы.
В юните ComObjесть процедура GetIDsOfNamesкоторая ищет метод/свойство у COM-объекта.
Так вот. Если смотреть в дебаггере что передаётся в эту процедуру, то русские названия методов/свойств выглядят там естественно зюками.
Если их скопировать в текстовый редактор и сказать "Сконвертировать в UTF-8" замечательно получается читаемое название нужного метода/свойства.

Так вот вопрос. Что где и куда нажать в Делфях, чтобы она сама конвертила методы/свойства в UTF?


Набережных С.   (2005-12-23 20:41:00) [21]


> Bleed ©

Может, проще описать все эти диспинтерфейсы, заменив в них имена на латиницу, но сохранив соответствие индексов? Мне кажется, так возни меньше будет.


Bleed   (2005-12-23 18:44:00) [22]

Удалено модератором
Примечание: Offtopic


vl-chel   (2005-12-23 18:17:00) [23]

Удалено модератором
Примечание: Offtopic


Bleed   (2005-12-23 16:54:00) [24]


> А не проще написать свои обертки над диспатчем?

Понял, спасибо за идею.
Если выхода через настройки не найду - буду пробовать :)


Bleed   (2005-12-23 16:52:00) [25]


> Попробуй поработать с форматом исходника. По правой кнопке
> в редакторе. Не обещаю, но может, поможет ?

извиняюсь, забыл сказать - пробовал.
не помогает.
пробовал руками перекодировать pas фаел - делфи его открывает, но русские буквы не может показать (при смене формата правой клавишей - тоже), а когда дебагером захожу в процедуру где есть русские методы просто тупо вываливается :(


jack128   (2005-12-23 16:45:00) [26]

Bleed ©   (23.12.05 16:21) [9]
А не проще написать свои обертки над диспатчем?
Ну в смысле:
IDispatch(Table).GetIDsOfNames(...);
IDispatch(Table).Invoke(..);

Собственно большую часть кода можно прямо из ComObj стырить. И ты сможешь конвертить имена методов, как хочешь..


Игорь Шевченко   (2005-12-23 16:37:00) [27]

Bleed ©   (23.12.05 16:25) [10]

Попробуй поработать с форматом исходника. По правой кнопке в редакторе. Не обещаю, но может, поможет ?


Bleed   (2005-12-23 16:25:00) [28]


> 7я тупо передаёт в анси чарсете название метода 'Добавить'

ну и 'Колонки', да, на них сначала ругается.


Bleed   (2005-12-23 16:21:00) [29]


> AnsiToUtf8
> Utf8ToAnsi

э ...
давай ещё поясню :)

есть кусок кода:

   Table := AppDispatch.NewObject('ТаблицаЗначений');
   Table.Колонки.Добавить('Колонка1');
   Table.Колонки.Добавить('Колонка2');
   Table.Колонки.Добавить('Колонка3');

вот на второй строчке спотыкаются все делфи старше 7й. 7я тупо передаёт в анси чарсете название метода 'Добавить' в процедуру GetIDsOfNames, которая тоже тупо в анси получает параметр Namesноромальными русскими буквами, отдаёт 1С и та выдаёт ID метода.
Вооот.
А младшие родственники делфей вертят кодировками при компиляции как корова хвостом на лугу. Где это настраивается - я не нашёл.

Кстати встречный вопрос.
Если изменить именно исходник ComObjчтобы параметр Namesотутээфить, что нужно делать? исходник же придётся перекомпилить/зарегистрить?


Bleed   (2005-12-23 16:05:00) [30]

Спасибо, мод.


Игорь Шевченко   (2005-12-23 16:02:00) [31]

AnsiToUtf8
Utf8ToAnsi

?


Digitman   (2005-12-23 15:46:00) [32]

Удалено модератором


Digitman   (2005-12-23 15:45:00) [33]

Удалено модератором


Bleed   (2005-12-23 15:41:00) [34]


>  на кой ляд тебе сдалась эта идиотская фича от одноэсных
> умников, коль скоро все ведущие мировые продукты ориентированы
> на латиницу ?

Интересные у вас обыватели.
Я вроде никого не оскорблял когда зашел.
Написал подробный вопрос.
Тут набежало великовозрастное дитё и начинает мне рассказывать про весь мир.

Не веди дальше беседу со мной в таком тоне. Понятно?

Объясняю.
Я скромный программо-писатель. Не пишу для всего мира.
Мне достался проект с начальными и граничными условиями.
Вписываясь в них я его решаю на Делфи 7.
Но последущее развитие Делфей мне импонирует, потому хочется перенести проект в них.
1. Код переноситсяв делфи ИЗ 1С (а там ПРИНЯТОписАть на русском)
2. Переписать все методы/свойства на англоязычные аналоги - сильно трудоёмко и не имеет смысла в последующей отладке/сравнении кода в 1С, потому как, повторюсь, в 1С всё на русском.
3. Вижуал студия от Микрософта нормально, повторяю, НОРМАЛЬНОкомпилит и исполняет код. Моя бы воля я бы писАл на Вижул студии, но, повторюсь, есть начальные условия.


Digitman   (2005-12-23 15:22:00) [35]

Удалено модератором


Bleed   (2005-12-23 15:04:00) [36]

Удалено модератором


Digitman   (2005-12-23 14:57:00) [37]

Удалено модератором


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо