|
Перетаскивание Drag&Drop отменить по условию (да/нет) в динамическом списке | ☑ | ||
---|---|---|---|---|
0
Said_We
14.09.17
✎
17:04
|
Есть динамический список номенклатуры с дополнительными данными из других источников. Пользователи в этом списке могут переносить элементы и группы номенклатуры из одного родителя в другого. Действие эти им разрешены. Есть одно НО.
Пользователи иногда случайно это делают и что бы исключить эту случайность достаточно задать им вопрос уверены они в своих действиях или нет. Столько лет, а с перетаскиванием никогда не приходилось работать. Не было нужды. Собственно вопрос. Как пользователю отменить свое действие, ответив на вопрос, что он не уверен в своих действиях. Есть событийная процедура ОкончаниеПеретаскивания. К моменту вызова этой процедуры действие уже завершено и установка СтандартнаяОбработка = ЛОЖЬ не будет приводить к отмене действия. Вижу только один вариант - запоминать перед началом перетаскивания откуда я перетаскиваю и в конце если пользователь отказался от своих действий, то делать обратный перенос. Но как-то это не красиво и по дубовому. Есть какие-то нормальный и простой способ? |
|||
1
Numerus Mikhail
14.09.17
✎
17:08
|
Есть еще ПроверкаПеретаскивания, НачалоПеретаскивания и просто Перетаскивание.
Может одно из них подойдет? |
|||
2
Said_We
14.09.17
✎
17:10
|
Они возникают либо вначале перетаскивания либо в процессе, а мне нужно только при завершении.
По факту переносить надо или это случайные действия и ручки шаловливые. |
|||
3
Said_We
14.09.17
✎
17:49
|
Тишина какая-то.
По ходу не только я один не работал с этим... Я тут ещё один способ придумал. Тоже не через одно место. На форму вывести галочку при установки которой перетаскивать можно, при снятии нельзя. После перетаскивания галочку сбрасывать. Режим такой. Включил перетаскивание - перетащил. Перетаскивание отключилось. |
|||
4
Fragster
гуру
14.09.17
✎
17:54
|
заставьте юзеров играть в сапера старого, с 8*8 пикселей клеткой.
случайно, блин... ну а вообще - событие Перетаскивание - то, что нужно. |
|||
5
AllJoke
14.09.17
✎
17:59
|
ТаблицаФормы (FormTable)
ОкончаниеПеретаскивания (DragEnd) Синтаксис: ОкончаниеПеретаскивания(<ПараметрыПеретаскивания>, <СтандартнаяОбработка>) Параметры: <ПараметрыПеретаскивания> Тип: ПараметрыПеретаскивания. Содержит перетаскиваемое значение, тип действия и возможные действия при перетаскивании. <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Значение по умолчанию: Истина. Описание: Возникает при окончании перетаскивания в поле источнике данных. |
|||
6
Said_We
14.09.17
✎
18:15
|
(5) Это к чему?
СтандарнаяОбработка = Ложь не отменяет само перетаскивание. Оно отменяет стандартную обработку события перетаскивания, но не само перетаскивание. |
|||
7
Said_We
15.09.17
✎
09:18
|
(4) Да событие "Перетаскивание", то что нужно. Отличается от описанного поведения, которое я нашел. По факту срабатывает при отпускании кнопки мыши, а не при наведении на то куда хочешь перенести, но ещё не отпустил кнопку.
Ошибочное описание я нашел и поверил ему, что даже пробовать не стал. Еще раз убеждаюсь, что верить описанию нельзя. Спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |