это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
Ознакомительный фрагмент работы:
Предводителев Сергей
В этой статья я расскажу, как реализовать перетаскивание файлов на форму... Рассмотрим на примере текстового редактора с многооконным интерфейсом, при перетаскивании файлов на главную форму которого будут открываться MDI-окна с уже открытыми в них файлами. Не будем далеко ходить, возьмем текстовый редактор из примеров, которые поставляются вместе с Delphi, и дополним его.
Итак, для начала надо зарегистрировать окно для приёма файлов, для этого в обработчике onCreate для главной формы напишем следующий код:
DragAcceptFiles(FrameForm.Handle, True);
Эта функция оп7исана в библиотеке ShellAPI, поэтому не забудьте его добавить в раздел uses. Первый параметр функции - handle регистрируемого окна, второй параметр - определяет можно перетаскивать файлы (True) или нет (False).
Теперь надо обрабатывать сообщение WM_DROPFILES. В разделе private добавим следующую строчку:
procedure WMDROPFILES(var Message: TWMDROPFILES); message WM_DROPFILES;
И соответственно напишем процедуру обработки сообщения:
procedure TFrameForm.WMDROPFILES(var Message: TWMDROPFILES);
var
Files: Longint;
I: Longint;
Buffer: array[0..MAX_PATH] of Char;
begin
Files := DragQueryFile(Message.Drop, $FFFFFFFF, nil, 0);
for I := 0 to Files - 1 do begin
DragQueryFile(Message.Drop, I, @Buffer, SizeOf(Buffer));
if FileExists(Buffer) then
with TEditForm.Create(Self) do
Open(Buffer);
end;
DragFinish(Message.Drop);
end;
В этой процедуре используется функция DragQueryFile. Вот её описание:
DragQueryFile(
HDROP hDrop, // handle структуры, перетащенных файлов
UINT iFile, // номер нужного файла
LPTSTR lpszFile, // буфер для возвращаемого FileName
UINT cch // размер буфера для FileName
);
Если iFile равен $FFFFFFFF, то функция возвращает количество перетащенных файлов.
Итак, в нашей процедуре сначала в переменную Files заносится кол-во перетащенных файлов, а затем мы просматриваем все FileName'ы и если данный файл существует, то открываем его.
Примечание. MATH_PATH - константа, которая задаётся в модуле Windows. Это, если я всё правильно понял ;), максимальное количество символов в FileName.
Функция DragFinish очищает память, которая использовалась для передачи FileName в приложение.
Ну вот и всё... Если что-то непонятно или здесь что-то не так, то пишите... разберёмся ;)
Внимание! Запрещается перепечатка данной статьи или ее части без согласования с автором. Если вы хотите разместить эту статью на своем сайте или издать в печатном виде, свяжитесь с автором.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Ответить на вопросы 2 варианта на стр. 16 (аэрологические наблюдения), с рисунками, фотографиями и графиками. так же использовать файл код кн 04.
Контрольная, Метеорология
Срок сдачи к 3 сент.
Выполнение реферата по заданной теме и критреиям
Реферат, Предупреждение коррупции в ОВД и формирование антикоррупционного поведения, уголовное право
Срок сдачи к 1 сент.
Выполнение контрольной работы в соответствии с заданными критериями
Контрольная, Административная деятельность полиции, правоохранительные органы
Срок сдачи к 1 сент.
Точной темы и требований пока нет, хочу узнать приблизительную...
Диплом, Психология
Срок сдачи к 7 дек.
Контрольная, 1 семестр Инженерная графика (задание1)
Контрольная, Инженерная графика
Срок сдачи к 29 авг.
Сделать курсовую работу по соответствующему варианту.
Курсовая, Организация деятельности пожарной охраны, пожарная безопасность
Срок сдачи к 28 авг.
Взаимодействие видов транспорта
Контрольная, Железнодорожный транспорт, железнодорожное дело
Срок сдачи к 1 сент.
Вся информация в методических указаниях в приложении
Отчет по практике, 38.03.02 Менеджмент
Срок сдачи к 26 авг.
Железнодорожные станции и узлы
Контрольная, Железнодорожный транспорт, железнодорожное дело
Срок сдачи к 1 сент.
Учебная практика: технологическая (проектно-технологическая) практика
Отчет по практике, бизнес-информатика
Срок сдачи к 1 сент.
Учебная практика: технологическая (проектно-технологическая) практика
Отчет по практике, бизнес-информатика
Срок сдачи к 31 авг.
Исправить курсовую работу и повысить оригинальность. Управление человеческими ресурсами. Д-00597
Курсовая, Менеджмент
Срок сдачи к 29 авг.
Заполните форму и узнайте цену на индивидуальную работу!