Форум: "Основная";
Текущий архив: 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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c