Категория
Информатика
Тип
реферат
Страницы
2 стр.
Дата
13.08.2008
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20808.zip — 4.05 kb
  • peretaskivanie-fajlov-na-formu_20808_1.rtf — 17.37 Kb
  • Readme_docus.me.txt — 125 Bytes
Рейтинг
10  из 10
Оценок
1
Оцените работу
Хорошо  или  Плохо


Текст работы

Перетаскивание файлов на форму
Перетаскивание файлов на форму
Предводителев Сергей
В этой статья я расскажу, как реализовать
перетаскивание файлов на форму... Рассмотрим на примере текстового редактора с многооконным интерфейсом, при перетаскивании файлов на главную форму которого будут открываться 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. Вот её описание:
DragQueryFi



Ваше мнение



CAPTCHA