Страница 1 из 1
Drop из Windows File Explorer.
Добавлено: 03 Апрель 2015, 10:19
kreator
Win7-64, C9.1.11313. Хочу воспользоваться возможностью импортировать файлы из Виндоусового Эксплорера. Делаю вроде как в хелпе, ставлю на таблицу drop-метку '~FILE', но ничего не происходит, программа не понимает, что я тащу файл с Эксплорера.
Есть ещё такая фраза в хелпе:
Код: Выделить всё
** The ~TEXT signature is supported on XP/Vista/Win7/Win8.
Your program must either have no manifest, or have a manifest with the privilege level set to "asInvoker" to allow dragging from Explorer in Windows 8.
Не понятно, относится ли к метке '~TEXT', или к обоим меткам. Но факт, с переводом манифеста на уровень "asInvoker" изменений нет. Правда, у меня не Win8.
Кто-нибудь делал такую возможность? Где собака порылась?
Drop из Windows File Explorer.
Добавлено: 03 Апрель 2015, 11:21
kreator
Откатился на С6.3. Не работает. Что-то я не догоняю. Неужели никогда не работало?
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 9:27
Igor Vesnin
Win7-32, С8.9759 работает. В дизайнере надо писать без одинарных кавычек ~FILE
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 11:29
kreator
Делаю, как в хелпе:
Код: Выделить всё
Example:
WinOne WINDOW,AT(0,0,160,400)
!Allows drags, but not drops:
LIST,AT(120,0,20,20),USE(?List1),FROM(Que1),DRAGID('FromList1')
!Allows drops from List1 or the Windows File Manager, but no drags:
LIST,AT(120,120,20,20),USE(?List2),FROM(Que2),DROPID('FromList1','~FILE')
END
Не работает. А можно пример, если не жалко?
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 12:07
Igor Vesnin
Специальный тест-пример не делал. Вырезка из рабочего проекта
Код: Выделить всё
QuickWindow WINDOW('Лицевая карточка'),AT(,,392,214),DOUBLE,CENTER, |
GRAY,IMM,MASK,MDI,HLP('~ListF'),SYSTEM
LIST,AT(88,2,301,172),USE(?LISTLDoc),VSCROLL,DROPID('~FILE'), |
FLAT,FORMAT('[12L(1)_J@s1@#7#500L(1)|_M@s255@#1#]|~Личные документы~'),FROM(QueueLDoc)
End
В поле ?LISTLDoc ловим событие EVENT:Drop и получаем функцией dropid() список файлов разделенных запятой.
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 12:36
kreator
Не работает. ХЗ почему. Из другой Кларионовской программы тащит, а из Windows Explorer нет.
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 13:44
Дед Пахом
Свою программу откуда запускаешь, из IDE или проводника? Из проводника должно работать.
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 14:02
kreator
Не, не работает никак. Посмотрел Инет. Предлагают перехватывать виндоусовое сообщение WM_DROPFILES, и файлы тянуть из какой-то структуры. Думаю теперь - неужели в Clarion'е всё так просто?

Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 14:34
Дед Пахом
да блин!
Код: Выделить всё
PROGRAM
MAP
END
LIST1:Queue QUEUE, PRE(LIST1)
Filename STRING(256)
END
Window WINDOW('Caption'),AT(,,260,167),GRAY,FONT('Microsoft Sans Serif',8)
LIST,AT(25,26,186,98),USE(?LIST1),FROM(LIST1:Queue),DROPID('~FILE')
END
CODE
OPEN(Window)
ACCEPT
CASE FIELD()
OF ?LIST1
CASE EVENT()
OF EVENT:Drop
MESSAGE('Dropped')
END
END
END
Работает из проводника, но не из IDE. C10, заняло 3 минуты.
Drop из Windows File Explorer.
Добавлено: 06 Апрель 2015, 21:48
Дед Пахом
DROPID('FromList1','~FILE') тоже работает, проверил для порядка - и из TotalCommander'a принимает, и из другого листа. Проверял в 10, 9.1.529, C9.0.376
Drop из Windows File Explorer.
Добавлено: 08 Апрель 2015, 14:36
kreator
Спасибо большое за участие. Проблема оказалась вот в чём. Лист находится на Sheet, в одном из Tab'ов. И Sheet не даёт работать Drop'у. Срабатывает только Drop, если его на Sheet назначить. Даже на Tabe'е не срабатывает. Не очень удобно, однако.
Drop из Windows File Explorer.
Добавлено: 09 Апрель 2015, 15:06
Igor Vesnin
В С8 на Листе который находится в на Табе и без ресайза все в порядке. Но если ресайзить, то почему-то область для дропа смещается вправо. То есть при ресайзе по вертикале - область соответствует границам листа, а при ресайзе по горизонтале - область смещается вправо - левая часть курсором мышки показывается как не доступной для дропа.
Drop из Windows File Explorer.
Добавлено: 09 Апрель 2015, 16:26
kreator
Можно исхитриться так. Лист в Tab Order Assistant вытащить на первую позицию, тогда всё путём. Но у меня лист должен находиться на конкретном табе. Можно, конечно, тоже вытащить наверх и хайдить / анхайдить в зависимости от выбора таба. Другого варианта пока не придумал.