• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Как Сделать Так, Чтобы Форма Принимала Сбрасываемые На Нее Файлы?

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,562
Баллы
155
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, ShellAPI{обязательно!};

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    FileNameLabel: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }

    procedure WMDropFiles(var Msg: TMessage); message wm_DropFiles;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  { Говорим Windows, что на нас можно бросать файлы }
  DragAcceptFiles(Handle, True);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  { Закрываем за собой дверь золотым ключиком }
  DragAcceptFiles(Handle, False);
end;

procedure TForm1.WMDropFiles(var Msg: TMessage);
const
  cnMaxFileNameLen = 255;
var
  Filename: array [0 .. 256] of Char;
  nCount: integer;
  acFileName: array [0 .. cnMaxFileNameLen] of Char;
begin
  { Получаем количество файлов (просто пример) }
  nCount := DragQueryFile(Msg.WParam, $FFFFFFFF, acFileName, cnMaxFileNameLen);
  { Получаем имя первого файла }
  DragQueryFile(THandle(Msg.WParam), 0, { это номер файла }
    Filename, SizeOf(Filename));
  { Открываем его }
  with FileNameLabel do
  begin
    Caption := LowerCase(StrPas(Filename));
    Memo1.Lines.LoadfromFile(Caption);
  end;
  { Отдаем сообщение о завершении процесса }
  DragFinish(THandle(Msg.WParam));
end;

end.
d.JPG
 
Вверх Снизу