Определение интерфейса


Желательно, чтобы перетаскивание по возможности работало так же, как стандартные события Delphi. Поскольку мы не создаем новый нестандарт ный элемент, нам не удастся определить событие OnFMDD и организовать его обработку в режиме конструирования. Придется имитировать нечто похожее во время выполнения. Для этого мы должны:

  1. Определить тип TFMDDEvent для обработчика события.
  2. Объявить обработчик OnFMDRagDrop в закрытой (private) секции формы.
  3. При создании формы передать адрес обработчика интерфейсу FMDD — то есть сообщить ему о том, что наша форма желает принимать брошенные файлы.
  4. Когда происходит событие перетаскивания (то есть в тот момент, когда форма получает сообщение WM_DROPFILES), интерфейс FMDD вызывает обработчик OnFMDragDrop и передает ему объект TDragDropInfo.
  5. При закрытии формы обратиться к интерфейсу FMDD и сообщить о том, что форма прекращает принимать перетаскиваемые файлы.

Описанная схема превращается в интерфейсную секцию, приведенную в листинге 3.6.



Содержание раздела