Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2016, 17:33   #1
Владимир1111
 
Регистрация: 01.04.2010
Сообщений: 9
По умолчанию Не работает перетаскивание файлов на форму drag and drop. Помогите - внутри два идентичных примера - в одном все работает в другом - нет.

Добрый день.

Есть исходный проект "TargetDemo" в котором отлично работает перетаскивание файлов на форму, а есть созданный мной полностью идентичный проект "drop555", в котором то же перетаскивание не дает результатов - listview не регистрирует названия перетаскиваемого файла. Хотя никаких отличий между проектами нет.

Может кто-нибудь помочь разобраться в причине этого? два проекта прилагаются


Вот весь код:

"
Код:
unit Main1;

interface

uses
 DragDrop,
  DropTarget,
  DragDropFile,
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ExtCtrls;

type
  TMain = class(TForm)
    ListView1: TListView;
    DropFileTarget1: TDropFileTarget;
    Panel1: TPanel;

    procedure DropFileTarget1Drop(Sender: TObject; ShiftState: TShiftState;
      APoint: TPoint; var Effect: Integer);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;

implementation
   
{$R *.dfm}



procedure TMain.DropFileTarget1Drop(Sender: TObject; ShiftState: TShiftState;
  APoint: TPoint; var Effect: Integer);
var
  i: integer;
  Item: TListItem;
begin
  (*
  ** The OnDrop event handler is called when the user drag and drop files
  ** onto your application.
  *)

  Listview1.Items.Clear;

  // Display mapped names if present.
  // Mapped names are usually only present when dragging from the recycle bin
  // (try it).
  if (DropFileTarget1.MappedNames.Count > 0) then
    Listview1.Columns[1].Width := 100
  else
    Listview1.Columns[1].Width := 0;

  // Copy the file names from the DropTarget component into the list view.
  for i := 0 to DropFileTarget1.Files.Count-1 do
  begin
    Item := Listview1.Items.Add;
    Item.Caption := DropFileTarget1.Files[i];
       ShowMessage('файл - '+ DropFileTarget1.MappedNames[i]);
    // Display mapped names if present.
    if (DropFileTarget1.MappedNames.Count > i) then
      Item.SubItems.Add(DropFileTarget1.MappedNames[i]);

  end;

  // For this demo we reject the drop if a move operation was performed. This is
  // done so the drop source doesn't think we actually did something usefull
  // with the data.
  // This is important when moving data or when dropping from the recycle bin;
  // If we do not reject a move, the source will assume that it is safe to
  // delete the source data. See also "Optimized move".
  if (Effect = DROPEFFECT_MOVE) then
    Effect := DROPEFFECT_NONE;
end;



end.
"
Вложения
Тип файла: rar drop555.rar (584.6 Кб, 17 просмотров)
Тип файла: rar TargetDemo.rar (539.1 Кб, 15 просмотров)

Последний раз редактировалось Владимир1111; 22.10.2016 в 17:36.
Владимир1111 вне форума Ответить с цитированием
Старый 23.10.2016, 08:37   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

где-то на форме у одного из компонентов по-любому забыли свойство приписать, чтоб реагировал. на Delphi, в левом маленьком окошке, где выбор компонента, есть вкладка - свойства. вот там и надо поглядеть, нет?
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 23.10.2016, 18:43   #3
Владимир1111
 
Регистрация: 01.04.2010
Сообщений: 9
По умолчанию

Добрый день!

Я как раз специально проверил все свойства - полностью совпадают. можете в проекте проверить, я их выложил. Если бы причина была в таком простом я бы сюда на форум не писал. Но дело в том, что настройки свойств полностью идентичны, только в одном проекте все работает, а в другом нет. В чем причина понять не могу.
Владимир1111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drag&Drop не работает в win8 через IDropTarget planetoxod Общие вопросы Delphi 6 06.03.2015 13:23
На одном компьютере коннектится, на другом нет. hapera2 Работа с сетью в Delphi 5 02.11.2014 12:23
TOOLTIP_CLASS - В одном проекте работает, а в другом нет BLACK_RAIN Win Api 3 27.09.2013 15:07
код в одном проекте работает,в другом нет Миасс Общие вопросы C/C++ 15 08.07.2013 22:43
Реализация Drag and Drop (файлов) на Java PavloT Общие вопросы по Java, Java SE, Kotlin 0 06.03.2012 20:57