Drop из Windows File Explorer.

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение 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.
Кто-нибудь делал такую возможность? Где собака порылась?
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение kreator »

Откатился на С6.3. Не работает. Что-то я не догоняю. Неужели никогда не работало?
We are hard at work… for you. :)
Igor Vesnin
Посетитель
Сообщения: 49
Зарегистрирован: 30 Декабрь 2005, 0:06

Drop из Windows File Explorer.

Сообщение Igor Vesnin »

Win7-32, С8.9759 работает. В дизайнере надо писать без одинарных кавычек ~FILE
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение 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
Не работает. А можно пример, если не жалко?
We are hard at work… for you. :)
Igor Vesnin
Посетитель
Сообщения: 49
Зарегистрирован: 30 Декабрь 2005, 0:06

Drop из Windows File Explorer.

Сообщение 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() список файлов разделенных запятой.
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение kreator »

Не работает. ХЗ почему. Из другой Кларионовской программы тащит, а из Windows Explorer нет.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Drop из Windows File Explorer.

Сообщение Дед Пахом »

Свою программу откуда запускаешь, из IDE или проводника? Из проводника должно работать.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение kreator »

Не, не работает никак. Посмотрел Инет. Предлагают перехватывать виндоусовое сообщение WM_DROPFILES, и файлы тянуть из какой-то структуры. Думаю теперь - неужели в Clarion'е всё так просто? :mrgreen:
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Drop из Windows File Explorer.

Сообщение Дед Пахом »

да блин!

Код: Выделить всё

  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 минуты.
С уважением, ДП
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Drop из Windows File Explorer.

Сообщение Дед Пахом »

DROPID('FromList1','~FILE') тоже работает, проверил для порядка - и из TotalCommander'a принимает, и из другого листа. Проверял в 10, 9.1.529, C9.0.376
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение kreator »

Спасибо большое за участие. Проблема оказалась вот в чём. Лист находится на Sheet, в одном из Tab'ов. И Sheet не даёт работать Drop'у. Срабатывает только Drop, если его на Sheet назначить. Даже на Tabe'е не срабатывает. Не очень удобно, однако.
We are hard at work… for you. :)
Igor Vesnin
Посетитель
Сообщения: 49
Зарегистрирован: 30 Декабрь 2005, 0:06

Drop из Windows File Explorer.

Сообщение Igor Vesnin »

В С8 на Листе который находится в на Табе и без ресайза все в порядке. Но если ресайзить, то почему-то область для дропа смещается вправо. То есть при ресайзе по вертикале - область соответствует границам листа, а при ресайзе по горизонтале - область смещается вправо - левая часть курсором мышки показывается как не доступной для дропа.
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drop из Windows File Explorer.

Сообщение kreator »

Можно исхитриться так. Лист в Tab Order Assistant вытащить на первую позицию, тогда всё путём. Но у меня лист должен находиться на конкретном табе. Можно, конечно, тоже вытащить наверх и хайдить / анхайдить в зависимости от выбора таба. Другого варианта пока не придумал.
We are hard at work… for you. :)
Ответить