|
Перетаскивание объектов и 1С | ☑ | ||
---|---|---|---|---|
0
Fedor-1971
20.02.15
✎
10:50
|
Доброй пятницы!
Есть файл в проводнике, цепляем его мышкой тащим в поле на форме, штатными средствами отрабатываем перенос оного в хранилище и т.д. Тут всё относительно просто. А вот обратная задача: есть поле на форме, например, картинки, типа цепляем картинку и тащим в проводник (флажок "начало перетаскивания"). Вот тут кроется засада как определить куда пытались перетащить картинку? (как минимум папку, более сложную задачу перетаскивания в другое приложение пока не рассматриваем). |
|||
1
ДенисЧ
20.02.15
✎
10:51
|
А зачем? Это должна понимать принимающая программа...
|
|||
2
Fedor-1971
20.02.15
✎
11:01
|
Как зачем?
Если есть средства отработки "Притащили", надо бы и средства работы с вариантом "Утащили". Самый простой пример: Справочник контрагентов с прикреплёнными сканами, например, договоров, картинки лежат в папке на диске. Операция Притащили - забирает скан в хранилище, а операция Утащили - берёт конкретный скан и сохраняет в указанную папку. Стандартной реализации просто не получится из-за простой дилеммы "что я хочу положить в папку?" всю информацию о контрагенте или только данный скан. Потому логичнее сделать какой-то обработчик события типа "ПритащилиВоВнешнююПрограмму" с параметрами, что за программа (Проводник, Exel, Word ...) и какие-то специфичные для каждой программы данные о текущем положении (для проводника - папка, для Exel - текущий лист и т.д.) |
|||
3
patria0muerte
20.02.15
✎
11:02
|
Странного вы хотите, батенька...
|
|||
4
Fedor-1971
20.02.15
✎
11:05
|
(3) да не странного из проводника файл в Outlook притаскивается, и обратно утаскивается. Хотелось бы и в 1С реализовать нечто подобное
|
|||
5
Fish
20.02.15
✎
11:05
|
(2) "с параметрами, что за программа... и какие-то специфичные для каждой программы данные" - А ты в курсе, что различных программ неограниченное количество?
|
|||
6
Fedor-1971
20.02.15
✎
11:08
|
(5) в курсе, как минимум сама программа, а текущее состояние - это просто мечта (есть - хорошо, для стандартных встроенных в винду, нет сами разберёмся)
|
|||
7
Fedor-1971
20.02.15
✎
11:15
|
в данном контексте окно в котором отпустили мышку. Как-то коряво получится, если приНачалеПеретаскивания придётся запустить мониторилку Куда собственно притащили и потом сгенерить внешнее событие ПритащилиВотСюда.
Хотя, надо посмотреть , может и возникает какое-то внешнее событие при отпускании мышки, а я про него просто не знаю. |
|||
8
D_E_S_131
20.02.15
✎
11:30
|
(7) "ОкончаниеПеретаскивания" не дает сделать нужное?
А вообще так бы для чего нужен был ДиалогВыбораФайла, если можно все взять и так просто перетащить. |
|||
9
Fedor-1971
20.02.15
✎
11:33
|
(8) нет, оно отрабатывает только внутри 1С (это проверил сразу).
Можно и просто кнопку сделать ПоложитьВПапку, но попробуй объясни заказчику "Притащить могу, а вот вытащить нет" |
|||
10
Fedor-1971
20.02.15
✎
11:34
|
9+ тогда нужно делать один интерфейс: Присоединяем через ВыборФайла и выгружаем через него-же.
|
|||
11
Господин ПЖ
20.02.15
✎
11:34
|
нельзя просто так взять и перетащить
|
|||
12
Fish
20.02.15
✎
11:36
|
(9) "попробуй объясни заказчику "Притащить могу, а вот вытащить нет"" - заказчики тупые или объяснять не умеешь?
|
|||
13
Fedor-1971
20.02.15
✎
11:37
|
(11) это понятно, что нужен обработчик, только к чему его привязать?
(12) Умею, сам задумался. |
|||
14
Torquader
22.02.15
✎
01:28
|
Вообще-то, в системе никто не следит за тем, кто принимает перетаскивание - отправляющий заявляет, что перетаскивание начато и заявляет форматы, которые он готов передать принимающему, а нужный формат из списка выбирает принимающий.
То есть вы можете заявить файл с данными для перетаскивания - и не важно - куда потащат - будет или получение файла - или отказ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |