Форум: "Основная";
Текущий архив: 2002.04.04;
Скачать: [xml.tar.bz2];
ВнизDrag&Drop Найти похожие ветки
← →
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.45 MB
Время: 0.005 c