Страница: 1 | 2 |
Вопрос: Копирование файла в буфер обмена
Добавлено: 06.06.05 12:36
Автор вопроса: Diz | Web-сайт:
Ответы
Всего ответов: 25
Номер ответа: 16
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #16
Добавлено: 10.06.05 14:53
msdn говорит, что ошибка будет если:
You tried to reference a DataObject object outside of the event in which it was passed in.
Но тут достаточно DataObjectFiles...
Номер ответа: 17
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #17
Добавлено: 10.06.05 15:14
Я откровенно не догоняю объект DataObject. В С++ он создается нормально, в VB.NET тоже, в старом MSDN есть пример его создания для старых VB, но тут никак. Кроме того, имеется еще тот же объект в MSForm 2.0 для офиса. Тот создается нормально, даже сам позволяет работать с буфером, но только с текстом!
Про ту ошибку я тоже читал. Но дык не работает даже следующий код
Private Sub List1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
Data.Clear
Data.Files.Add "d:\1.tmp"
Clipboard.SetData Data.GetData(vbCFFiles), vbCFFiles
End Sub
Код не менее глуп предшественника и ошибку выдает ту же
Номер ответа: 18
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #18
Добавлено: 10.06.05 15:23
В общем, думаю нормальным решением будет это
http://msdn.microsoft.com/library/en-us/dnvbpj00/html/clip0002.asp
Номер ответа: 19
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #19
Добавлено: 10.06.05 16:16
Да вот хороший модуль
http://www.developerfusion.com/show/224/
Номер ответа: 20
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #20
Добавлено: 10.06.05 16:46
1) в OLEStartDrag надо Data.SetData, но где эту Data брать?
2) Data.GetData не юзается в OLEStartDrag, она нужна при OLEDragDrop
3) Clipboard.SetData по моему хочет StdPicture.
Короче юзаем API
Номер ответа: 21
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #21
Добавлено: 10.06.05 17:16
Да, но вопрос уже в другом - через OLEStartDrag я пытался получить экземпляр DataObject. Он создается, но потом куда девается - загадка. Data можно юзать как угодно, но в пределах события и вызываемых из него функций. Дальше - хаюк.
А про АПИ нет вопросов, уже давал на них ссылку.
Номер ответа: 22
Автор ответа:
Black Dragon
ICQ: 321186096
Вопросов: 30
Ответов: 347
Web-сайт:
Профиль | | #22
Добавлено: 10.06.05 20:31
Нифига! В событии OLEStartDrag в Data суешь что нужно, а в событии OLEDragDrop в Data находится все то, что сунул раньше!
Номер ответа: 23
Автор ответа:
Black Dragon
ICQ: 321186096
Вопросов: 30
Ответов: 347
Web-сайт:
Профиль | | #23
Добавлено: 10.06.05 20:32
Data.Clear
Data.Files.Add "d:\1.tmp"
Clipboard.SetData Data.GetData(vbCFFiles), vbCFFiles
End Sub
LamerOnLine, ну код действительно глупый: ведь Clipboard.SetData, как заметил Sur (приятно видеть человека, кто хорошо разбирается в OLE Drag&rop!), "любит" StdPicture
Номер ответа: 24
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #24
Добавлено: 11.06.05 18:54
м... может не так понял, я особо не вчитывался, но надо что-ли перетащить данные с одного листбокса в другой? Если это, так вроде не сложно, где-то даже пример был...
Номер ответа: 25
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #25
Добавлено: 14.06.05 10:40
Никто не спорит про события. Я про то что после процесса D& объект удаляется, несмотря на присутствие ссылки на него, которая затем указывает бог знает куда.
Про Clipboard.SetData - в принципе, тут имеет смысл использовать SetText, этот метод поддерживает такие константы как vbCFLink, vbCFFiles.