Цитата:
Сообщение от
blokva
У меня вопросик есть по этому поводу, просто интересно стало, в функцию WinApi::openClipboard(0)
Вы передаете "0" а может всетаки передать хендлер текущего окна, как написано в MSDN?
Ну, в MSDN написано также, что можно передавать значение NULL. Т.е. в синтаксисе Axapta значение 0 как раз и эквивалентно использованию NULL.
Только это все не спасает. Собственно, запись в буфер обмена используется для последующей вставки в Excel через pastSpecial(). Так вот, никакие манипуляции с буфером обмена не дают гарантии, что все будет работать так как и задумывалось.
Например, в коде может успешно пройти команда WinApi::openClipboard(0). Более того, может даже успешно удастся записать информацию в буфер обмена при помощи API-функции SetClipboardData(). Но! TextBuffer.toClipboard() все равно ничего не запишет в буфер!
Ошибка "плавающая". Может произойти на любом этапе инициализации и формирования буфера обмена, если это происходит при помощи API-функций или методов класс TextBuffer.
А вот использование методов работы с буфером собственно Excel (фактически, того приложения для которого мне и надо сформировать буфер) дает достаточно высокую вероятность успеха.