Réponse acceptée !
Joyeuses fêtes à toutes et tous, too!
Voilà un bout de code pour te montrer la façon de procéder.
Je n'ai pas le temps de l'optimiser ni de commenter. Désolé.
var ListeItems: TStrings;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.MultiSelect := true;
ListBox1.ExtendedSelect := true;
ListeItems := TStringList.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ListeItems.Free;
end;
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var i : Integer;
begin
(Sender as TControl).begindrag(false,3);
ListeItems.Clear;
for i := 0 to ListBox1.Count - 1 do
if ListBox1.Selected[i] then ListeItems.Add(IntToStr(i));
end;
procedure TForm1.ListBox2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := true;
end;
procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
var i : Integer;
begin
for i := 0 to ListeItems.Count - 1 do
ListBox2.Items.Add(ListBox1.Items[StrToInt(ListeItems[i])]);
for i := ListeItems.Count - 1 downto 0 do
ListBox1.Items.Delete(StrToInt(ListeItems[i]));
end;
On peut faire un Drag'n Drop des éléments sélectionnés de ListBox1 vers ListBox2.
A toi d'arranger ça à ta sauce ;)
@+