ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Перетягування файлів на форму
         

     

    Інформатика, програмування

    Перетягування файлів на форму

    ватажків Сергій

    У цій статті я розповім, як реалізувати перетягування файлів на форму ... Розглянемо на прикладі текстового редактора з багатовіконний інтерфейсом, під час перетягування файлів на головну форму якого будуть відкриватися 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 в додаток.

    Ну от і все ... Якщо щось незрозуміло або тут щось не так, то пишіть ... розберемося;)

    Увага! Забороняється передрук цієї статті або її частини без узгодження з автором. Якщо ви хочете розмістити цю статтю на своєму сайті або видати в друкованому вигляді, зв'яжіться з автором.

    Список літератури

    Для підготовки даної роботи були використані матеріали з сайту http://andrey.nnov.ru/

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status