На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Использование Drag and drop
    Использую Drag and drop (Embarcadero® RAD Studio 10.1 Berlin) для перетаскивания путей к папкам - в Edit.

    Стандартный код и на форме только один Edit1.text: Все работает, но вот Как запретить перетягивать файлы, а разрешить перетягивать только папки ?

    ExpandedWrap disabled
      unit Unit1;
       
      interface
       
      uses
        Winapi.Windows, Winapi.Messages, shellapi, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
        Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
       
      type
        TForm1 = class(TForm)
          Edit1: TEdit;
          procedure FormCreate(Sender: TObject);
        private
          { Private declarations }
          procedure draganddrop (var msg:TWMDropFiles); message WM_DROPFILES;
        public
          { Public declarations }
        end;
       
      var
        Form1: TForm1;
        dragfile: array [0..max_path] of char;
      implementation
       
      {$R *.dfm}
       
      procedure Tform1.draganddrop(var msg: TWMDRopfiles);
      begin
       
      if dragqueryfile(msg.drop,0,dragfile,max_path)> 0 then
      form1.edit1.text:=dragfile;
       
      end;
       
      procedure TForm1.FormCreate(Sender: TObject);
      begin
      dragacceptfiles(handle,true);
      end;
       
      end.
      проверять перетаскиваемый файл функцией FileGetAttr, для каталога функция вернёт faDirectory
        vasya2019, А как это правильно сделать?
          ExpandedWrap disabled
            var
              Form1: TForm1;
              dragfile: string;
            ......
            procedure Tform1.draganddrop(var msg: TWMDRopfiles);
            begin
              setlength(dragfile,max_path);
              setlength(dragfile,dragqueryfile(msg.drop,0,pchar(dragfile),max_path));
              if FileGetAttr(dragfile) = faDirectory then edit1.text := dragfile;
            end;
            .......
          Сообщение отредактировано: vasya2019 -
            Или использовать extractfilepath :no:
              vasya2019, Спасибо! Сработало!
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0222 ]   [ 16 queries used ]   [ Generated: 18.04.24, 11:17 GMT ]