Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Drag and Drop - как использовать ItemAtPos для получения элемента DirListBox

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

Drag and Drop - как использовать ItemAtPos для получения элемента DirListBox

Просто сохраните результат функции ItematPos в переменной формы, и затем используйте эту переменную в обработчике ListBoxDragDrop. Пример:


FDragItem := ItematPos(X, Y, True);
if FDragItem >= 0 then
  BeginDrag(false);
...

procedure TForm1.ListBoxDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  if Source is TDirectoryListBox then
    ListBox.Items.Add(TDirectoryListBox(Source).GetItemPath(FDragItem));
end;


Here's the translation of the text into Russian:

Вопрос по Delphi!

Вы хотите использовать функцию ItemAtPos, чтобы получить элемент в конкретной позиции в DirListBox, и добавить его в свой основной список при перетаскивании и отпускании.

Разбивка кода:

  1. В обработчике события DragDrop координаты X и Y представляют собой координаты, где пользователь опустил элемент.
  2. Функция ItemAtPos вызывается с этими координатами и булевым параметром (True) для указания, что мы хотим найти элемент в указанной позиции.
  3. Если элемент найден (т.е. FDragItem >= 0), процедура BeginDrag вызывается для начала операции перетаскивания.

Теперь поговорим о альтернативном решении:

Вместо передачи FDragItem как глобальной переменной, вы могли бы передать ее в параметр обработчика события ListBoxDragDrop. Это сделает код более модульным и проще для обслуживания.

Обновленная версия:

procedure TForm1.ListBoxDragDrop(Sender, Source: TObject; X, Y: Integer);
var
  FDragItem: Integer;
begin
  if Source is TDirectoryListBox then
  begin
    FDragItem := ItemAtPos(X, Y, True);
    if FDragItem >= 0 then
      ListBox.Items.Add(TDirectoryListBox(Source).GetItemPath(FDragItem));
  end;
end;

Попав FDragItem как локальную переменную в обработчик события, вы избежите загрязнения глобального пространства и сделаете код более автономным.

В целом:

  • Ваши оригинальные код работает нормально, но лучше передавать FDragItem в параметр обработчика события для лучшей модульности.
  • Обновленный код более модульный и проще для обслуживания.

Данная статья описывает использование функции ItemAtPos для получения элемента DirListBox в приложении Delphi, чтобы реализовать Drag-and-Drop операцию.


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


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



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


реклама



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

Время компиляции файла: 2024-05-10 07:13:18
2024-05-19 16:50:25/0.010439872741699/2