15.02.2011, 17:16 | #1 |
Участник
|
Привет всем.
А никто не интересовался, как устроен clipboard и почему даже самые простые объекты нельзя быстро перенести из 3.70 в 2009? При обычном копировать-вставить из Навижн почти все внешние клипбоард-вьюеры выуживают только текстовую информацию. Но если я копирую, к примеру, сразу целый объект, то где он весь хранится (вместе со всеми переменными и исходным кодом)? Как мне его посмотреть\поредактировать? Возможно, есть какой-то хитрый HEX-редактор для клипборда, позволяющий это сделать. Или он это хранит где-то вообще в другом месте? (во временном файле, к примеру) Подскажите, кто знает. |
|
16.02.2011, 10:44 | #2 |
Участник
|
Здесь:
http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx Насколько я знаю, в буфер обмена данные копируются сразу в нескольких форматах, с указанием этого самого формата. Дальше программа, которая принимает данные, смотрит какие из них она поддерживает и предлагает пользователю выбрать (как при спец. вставке в office), или вставляет какой-то формат по умолчанию (как при обычной вставке). |
|
16.02.2011, 13:01 | #3 |
Участник
|
Цитата:
Мой вопрос был немного в другом: Почему из старого 3.70 в новый 2009 можно запросто скопировать, например, переменную или функцию, но нельзя скопировать наипростейшую кнопку [OK] в дизайнере форм. Т.е. совместимость объектов ЕСТЬ, но как-то НЕ ВЕЗДЕ и НЕ ВСЕГДА Да. Логично было бы предположить, что формат объектов несовместим. Но, что примечательно, через fobы-то всё работает и всё совместимо. Тогда можно было бы снова предположить, что 2009 при заргузке из fob-a программа что-то там "конвертирует" в свой более новый формат. Бред! Всё это бред, дорогие мои коллеги! Мелкософт тянет все свои форматы файлов ещё со времён Daamgard'a. Ничего он не перерабатывал и не собирается. Короче, прошлось разбираться самому. И что оказалось? Объекты не копируются из версии в версию из за-за... внимание... ИЗ-ЗА РЕБРЕНДИНГА!!! Большего кретинизма от Мелкософта я, честно говоря, не ожидал. При копировании объектов из ObjectDesigner'a в клипборд (а также кнопок на формах) программа гордо запихивает туда свою новую сигнатуру Microsoft. эта текстовая константа хранится в fin.stx 00110-00002-080-1: Запись Microsoft Business Solutions-Navision (это было в версии 3.70) 00110-00002-080-1: Запись Microsoft Dynamics NAV Classic (а это стало в версии 2009) и 00081-00013-080-1: Элементы Microsoft Business Solutions-Navision (это было в версии 3.70) 00081-00013-080-1: Элементы управления Microsoft Dynamics NAV Classic (а это стало в версии 2009) Вот эти-то ТЕКСТОВЫЕ строки Навижн и суёт в клипборд и тупо сравнивает данными из .stx Из-за них-то и возникает эдакая фальшивая "несовместимость объектов". В остальном же... все остальные данные в клипборде АБСОЛЮТНО ОДНИНАКОВЫЕ, кроме этого нового названия бренда. Честно?! Честно, мне глубоко наплевать, как называется продукт: MBS или Dynamix. Пусть этим занимаются маркетологи. Но! Когда я из-за этого не могу быстро скопировать кнопку - это раздражает. Поэтому, я в влез обычным текстовым редактором в .STX файлы от 3.70 и 2009 и заменил обе константы на ОДИНАКОВЫЕ: 00110-00002-080-1: Запись. Microsoft - MD!!! и 00081-00013-080-1: Элементы управления. LMD!!! И всё заработало! И теперь запросто вставляет целый объект куда угодно и откуда угодно! Ура!!! Победа! (ну, пришлось правда, пересчитывать ещё и CRC-сумму stx-файла, поскольку исправлять они его так просто тоже не дают) Вот, собственно, и вся история. Привет Мелкософту и его неутомимым |
|
16.02.2011, 13:28 | #4 |
Участник
|
Цитата:
Сообщение от jopagames2
Цитата:
Мой вопрос был немного в другом: Почему из старого 3.70 в новый 2009 можно запросто скопировать, например, переменную или функцию, но нельзя скопировать наипростейшую кнопку [OK] в дизайнере форм. Т.е. совместимость объектов ЕСТЬ, но как-то НЕ ВЕЗДЕ и НЕ ВСЕГДА Да. Логично было бы предположить, что формат объектов несовместим. Но, что примечательно, через fobы-то всё работает и всё совместимо. Тогда можно было бы снова предположить, что 2009 при заргузке из fob-a программа что-то там "конвертирует" в свой более новый формат. Бред! Всё это бред, дорогие мои коллеги! Мелкософт тянет все свои форматы файлов ещё со времён Daamgard'a. Ничего он не перерабатывал и не собирается. Короче, прошлось разбираться самому. И что оказалось? Объекты не копируются из версии в версию из за-за... внимание... ИЗ-ЗА РЕБРЕНДИНГА!!! Большего кретинизма от Мелкософта я, честно говоря, не ожидал. При копировании объектов из ObjectDesigner'a в клипборд (а также кнопок на формах) программа гордо запихивает туда свою новую сигнатуру Microsoft. эта текстовая константа хранится в fin.stx 00110-00002-080-1: Запись Microsoft Business Solutions-Navision (это было в версии 3.70) 00110-00002-080-1: Запись Microsoft Dynamics NAV Classic (а это стало в версии 2009) и 00081-00013-080-1: Элементы Microsoft Business Solutions-Navision (это было в версии 3.70) 00081-00013-080-1: Элементы управления Microsoft Dynamics NAV Classic (а это стало в версии 2009) Вот эти-то ТЕКСТОВЫЕ строки Навижн и суёт в клипборд и тупо сравнивает данными из .stx Из-за них-то и возникает эдакая фальшивая "несовместимость объектов". В остальном же... все остальные данные в клипборде АБСОЛЮТНО ОДНИНАКОВЫЕ, кроме этого нового названия бренда. Честно?! Честно, мне глубоко наплевать, как называется продукт: MBS или Dynamix. Пусть этим занимаются маркетологи. Но! Когда я из-за этого не могу быстро скопировать кнопку - это раздражает. Поэтому, я в влез обычным текстовым редактором в .STX файлы от 3.70 и 2009 и заменил обе константы на ОДИНАКОВЫЕ: 00110-00002-080-1: Запись. Microsoft - MD!!! и 00081-00013-080-1: Элементы управления. LMD!!! И всё заработало! И теперь запросто вставляет целый объект куда угодно и откуда угодно! Ура!!! Победа! (ну, пришлось правда, пересчитывать ещё и CRC-сумму stx-файла, поскольку исправлять они его так просто тоже не дают) Вот, собственно, и вся история. Привет Мелкософту и его неутомимым А можно поподробнее для тупых, как пересчитывать CRC-сумму? |
|
16.02.2011, 17:13 | #5 |
Участник
|
Да да, механихм пересчета CRC в студию!
__________________
Want to believe... |
|
17.02.2011, 16:00 | #6 |
Участник
|
Вообще, если честно, механизм досконально я не разбирал - лениво было
Я просто EXE-файл от 2009 пропатчил, чтобы он на несоответствие CRC не ругался. Вообще никогда. Если Маззи не против, и не сочтёт это запрещённой на форуме "попыткой взлома секретов Мелкософта", то расскажу в каком месте джампик на нопик заменить. |
|