Недавно добавленные исходники

•  3D Designer  105

•  Sik Screen Capture  86

•  Patch Maker  75

•  Айболит (remote control)  95

•  ListBox Drag & Drop  73

•  Доска для игры Реверси  1 240

•  Графические эффекты  84

•  Рисование по маске  62

•  Перетаскивание изображений  66

•  Canvas Drawing  68

•  Рисование Луны  143

•  Поворот изображения  50

•  Рисование стержней  43

•  Paint on Shape  41

•  Генератор кроссвордов  52

•  Головоломка Paletto  63

•  Теорема Монжа об окружностях  105

•  Пазл Numbrix  49

•  Заборы и коммивояжеры  74

•  Игра HIP  56

•  Игра Go (Го)  47

•  Симулятор лифта  49

•  Программа укладки плитки  52

•  Генератор лабиринта  92

•  Проверка числового ввода  43

•  HEX View  97

•  Физический маятник  99

•  Задача коммивояжера  125

•  Автомобильная пробка  49

•  Квадратные сетки из слов  43

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Drag and Drop между двумя компонентами ListBox



Вот пересмотренный OnDragDrop, использующий source (источник) и sender (передатчик) вместо DstList и SrcList. Теперь, если вы установили SrcList и DstList для использования тех же методов OnDragOver и OnDragDrop и создали обработчик события OnDragDrop, то для операции Drag and Drop вы можете использовать оба решения.


procedure TDualListDlg.DstListDragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  droppedOnIndex: integer;
  anItem: integer;
  numberOfItems: integer;
begin
  if (Sender is TListbox) and (Source is TListBox) then
  begin
    droppedOnIndex := TListBox(Sender).ItemAtPos(Point(X, Y), false);
    numberOfItems := TListBox(Source).SelCount;
    anItem := 0;
    while numberOfItems > 0 do
    begin
      if TListBox(Source).Selected[anItem] = true then
      begin
        TListBox(Sender).Items.Insert(droppedOnIndex,
          TListBox(Source).Items[anItem]);
        TListBox(Source).Items.Delete(anItem);
        TListBox(Source).Update;
        TListBox(Sender).Update;
        numberOfItems := numberOfItems - 1;
      end
      else
        anItem := anItem + 1;
    end;
  end;
end;

Для того, чтобы предотвратить операцию Drag and Drop с одним и тем же компонентом, используйте следующий код в обработчике события OnDragOver:


if (Sender is TListBox) and (Source is TListBox) then
begin
  if TListBox(Sender).Name = TListBox(Source).Name then
    Accept := False
  else
    Accept := true;
end;





Похожие по теме исходники

Текст Drag & Drop

Drag and Drop Text

Quick Drag & Drop

Dragster Tree Relay

 

ListBox Drag & Drop

Backup and Restore

Market Monitoring and Billing

Black and White Effects

 

Sand Dog

Wave and MIDI In-Out

Vista and 7 Sound

Improved Buttons and ProgressBar

 

Desktop Sands

Rotation and Symmetry

Dropper (пипетка Фотошоп)

Сообщения между процессами Windows

 

CheckListBox Draw

Search text in ListBox

ListBox Hints

ListBox Elements Sort

 

Transparent ListBox

ListBox ComboBox

File icons in TFileListBox




Copyright © 2004-2021 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте   Facebook   Ссылка на Twitter