Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Drag and Drop c Win95 Explorer

Delphi , Синтаксис , Drag and Drop

Drag and Drop c Win95 Explorer

Крошка сын к отцу пришел
И сказала кроха:
Navigator - хорошо,
а Explorer - плохо!


interface

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs,

  ComCtrls;

type

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure FileIsDropped(var Msg: TMessage); message WM_DropFiles;
  public
    { Public declarations }
  end;

var

  Form1: TForm1;

implementation
uses
  shellapi;
{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin

  DragAcceptFiles(Handle, True);
end;

procedure TForm1.FileIsDropped(var Msg: TMessage);
var

  hDrop: THandle;
  fName: array[0..254] of CHAR;
  NumberOfFiles: INTEGER;
  fCounter: INTEGER;
  Names: string;
begin

  hDrop := Msg.WParam;
  NumberOfFiles := DragQueryFile(hDrop, -1, fName, 254);
  Names := '';
  for fCounter := 1 to NumberOfFiles do
  begin
    DragQueryFile(hDrop, fCounter, fName, 254);
    // Здесь вы получаете один к одному имя вашего файла

    Names := Names + #13#10 + fName;
  end;

  ShowMessage('Бросаем ' + IntToStr(NumberOfFiles) + ' файла(ов) : ' + Names);
  DragFinish(hDrop);
end;

end.

Программа на Delphi, которая создает окно с возможностью перетаскивания файлов в него, аналогично функциональности Проводника Windows в Win95.

Вот разбивка кода:

Интерфейс Программа использует различные единицы из библиотеки Delphi, включая Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs и ComCtrls.

Типовые объявления Определен класс формы TForm1 с двумя процедурами: FormCreate (вызывается при создании формы) и FileIsDropped (вызывается при перетаскивании файла на форму).

Переменные Программа объявляет три переменные:

  • hDrop: обработчик целевого объекта
  • fName: массив символов для хранения имени файла
  • NumberOfFiles: целое число для хранения количества файлов, перетаскиваемых
  • fCounter: целое число для итерации по файлам
  • Names: строка для строительства списка имён файлов

FormCreate В этой процедуре программа вызывает DragAcceptFiles с обработчиком формы и аргументом True, что позволяет форме принимать операции перетаскивания.

FileIsDropped Эта процедура вызывается при перетаскивании файла на форму. Она обрабатывает перетаскиваемые файлы следующим образом: 1. Получает обработчик целевого объекта из сообщения 2. Вызывает DragQueryFile для получения количества файлов, перетаскиваемых, и хранения их в fName 3. Итерирует по файлам с помощью цикла 4. Для каждого файла вызывает DragQueryFile снова для получения имени файла и хранения его в fName 5. Строит строку Names, содержащую все имена файлов, разделенные символами новой строки (#13#10) 6. Показывает сообщение с количеством файлов, перетаскиваемых, и их именами 7. Вызывает DragFinish для освобождения системных ресурсов, связанных с операцией перетаскивания

Implementation Программа использует единицу shellapi, которая предоставляет функции для взаимодействия с Проводником Windows. Окно формы загружается из файла DFM (не показан) с помощью директивы $R *.DFM. В целом, этот код демонстрирует, как создать基本ную функциональность перетаскивания файлов в Delphi, аналогичную функциональности Проводника Windows.

В статье рассматривается использование функции Drag and Drop в приложении Win95 Explorer на языке Pascal, где автор предоставляет пример кода для реализации этой функции.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Drag and Drop ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-02 03:39:00/0.0034430027008057/0