Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];




Вниз

Drag&Drop 


Лана Розанова   (2002-03-24 09:35) [0]

Дайте пожалуйста код, чтобы из одного ListBox перенести строку в другой и наоборот.



mukha   (2002-03-24 09:54) [1]

Могу сбросить пример перемещения строк из одного списка в другой как с помощью нажатия клавиш так и перетаскиванием с помощью мыши. Код большой. Ответ через форум.



MBo   (2002-03-24 10:06) [2]

из 2 в первый (для 2 DragMode dmAutomatic)

это необязательно
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := Source=ListBox2;
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
//можно проверять Source
if ListBox1.Items.IndexOf(Temp)<0 then begin
ListBox1.items.add(Temp);
Temp:="";
end;
end;

procedure TForm1.ListBox2StartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
Temp:=Listbox2.Items[Listbox2.ItemIndex];
end;



mukha   (2002-03-24 11:22) [3]

На форме два списка и две кнопки btnLeft и btnRight. Перемещение выбранных элементов списка выполняется как нажатием кнопок так и перетаскиванием с помощью мыши.

procedure TForm1.FormCreate(Sender: TObject);
begin
//отключаем сортировку
ListBox1.Sorted:=false;
ListBox2.Sorted:=false;
//включаем множественный выбор
ListBox1.MultiSelect:=true;
ListBox2.MultiSelect:=true;
//разрешаем выбор клавиатурой
ListBox1.ExtendedSelect:=true;
ListBox2.ExtendedSelect:=true;
//заполняем первый список
ListBox1.Clear;
ListBox1.Items.Add("Первый");
ListBox1.Items.Add("Второй");
ListBox1.Items.Add("Третий");
ListBox1.Items.Add("Четвёртый");
ListBox1.Items.Add("Пятый");
//чистим второй список
ListBox2.Clear;
//разрешаем автоматическое перемещ. мышью
ListBox1.DragMode:=dmAutomatic;
ListBox2.DragMode:=dmAutomatic;
end;

procedure TForm1.btnRightClick(Sender: TObject);
var i:integer;
begin //перенос элементов во второй список
for i:=ListBox1.Items.Count-1 downto 0 do
if ListBox1.Selected[i] then
begin
ListBox2.Items.Add(ListBox1.Items[i]);
ListBox1.Items.Delete(i);
end;
end;

procedure TForm1.btnLeftClick(Sender: TObject);
var i:integer;
begin //перенос элементов в первый список
for i:=ListBox2.Items.Count-1 downto 0 do
if ListBox2.Selected[i] then
begin
ListBox1.Items.Add(ListBox2.Items[i]);
ListBox2.Items.Delete(i);
end;
end;

procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin //запрещение или разр. перемещения мышью во второй список
if Source= ListBox1 then Accept:=true else Accept:=false;
end;

procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
begin //перемещ. элемента во второй список
//после отпускания кнопки мыши
with Source as TListBox do
begin
ListBox2.Items.Add(Items[ItemIndex]);
Items.Delete(ItemIndex);
end;
end;

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin //запрещение или разр. перемещения мышью в первый список
if Source= ListBox2 then Accept:=true else Accept:=false;
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin //перемещ. элемента в первый список
//после отпускания кнопки мыши
with Source as TListBox do
begin
ListBox1.Items.Add(Items[ItemIndex]);
Items.Delete(ItemIndex);
end;
end;




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.015 c
14-9605           Alex12                2002-02-21 15:49  2002.04.04  
Струйный и лазерный. Характеристики и выгоды.


1-9538            deni                  2002-03-24 00:07  2002.04.04  
Как открыть дерикторию например c: windows?


1-9563            lipskiy               2002-03-24 20:30  2002.04.04  
Как присвоить переменной типа Array [0..127] of Char значение переменной типа String?


1-9480            3d                    2002-03-25 18:00  2002.04.04  
Народ , подскажите pls где взять компонент.


3-9400            koks                  2002-03-04 17:51  2002.04.04  
TQuery.Filter