Показать сообщение отдельно
Старый 03.04.2008, 10:42   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от blokva Посмотреть сообщение
У меня вопросик есть по этому поводу, просто интересно стало, в функцию WinApi::openClipboard(0)
Вы передаете "0" а может всетаки передать хендлер текущего окна, как написано в MSDN?
Ну, в MSDN написано также, что можно передавать значение NULL. Т.е. в синтаксисе Axapta значение 0 как раз и эквивалентно использованию NULL.

Только это все не спасает. Собственно, запись в буфер обмена используется для последующей вставки в Excel через pastSpecial(). Так вот, никакие манипуляции с буфером обмена не дают гарантии, что все будет работать так как и задумывалось.

Например, в коде может успешно пройти команда WinApi::openClipboard(0). Более того, может даже успешно удастся записать информацию в буфер обмена при помощи API-функции SetClipboardData(). Но! TextBuffer.toClipboard() все равно ничего не запишет в буфер!

Ошибка "плавающая". Может произойти на любом этапе инициализации и формирования буфера обмена, если это происходит при помощи API-функций или методов класс TextBuffer.

А вот использование методов работы с буфером собственно Excel (фактически, того приложения для которого мне и надо сформировать буфер) дает достаточно высокую вероятность успеха.