Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.04;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-9437
bobr12
2002-03-22 16:19
2002.04.04
Создание help-файла


1-9583
Jurich
2002-03-23 22:31
2002.04.04
Сдвиг строк в StringGrid


3-9403
Wizard_Ex
2002-03-07 17:43
2002.04.04
FIBPLUS & EVENTALERTER


1-9460
BDRON
2002-03-24 22:10
2002.04.04
CheckListBox


4-9669
sanjok
2002-02-02 21:23
2002.04.04
Как запустить внешнее приложение из своей программы