Ver Mensaje Individual
  #5  
Antiguo 27-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Carmelo Cash.

Usando un TListBox se me ocurre un modo de hacer lo que mencionas en el primer mensaje.
Código Delphi [-]
...
var
  SL: TStrings;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SL := TStringList.Create;
  ListBox1.DragMode := dmAutomatic;
  ListBox1.MultiSelect := True;
end;

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  // Al menos un ítem debe estar seleccionado
  Accept := (Sender as TListBox).SelCount > 0;
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  i, p: Integer;
begin
  with (Sender as TListBox) do
  begin
    // Vaciar contenido del StringList
    SL.Clear;
    // Agregar items seleccionados al StringList
    for i := 0 to Count-1 do
      if Selected[i] then SL.Add(Items[i]);
    // Eliminarlos del ListBox
    for i := Count -1 downto 0 do
      if Selected[i] then Items.Delete(i);
    // Obtener ítem en posición de mouse
    p := ItemAtPos(Point(X, Y), True);
    // Insertar Items seleccionados
    Items.BeginUpdate;
    try
      for i := SL.Count-1 downto 0 do
        Items.Insert(p, SL[i]);
    finally
      Items.EndUpdate;
    end;
  end;
end;
...
Te permitirá insertar uno o mas items dentro del mismo ListBox mediante Drag&Drop.

Tene en cuenta que: No hace ninguna organización sobre la selección múltiple (si los items fueran mas de uno). Y, si los ítems del ListBox fueran muchos, no será muy eficiente.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 27-03-2013 a las 20:56:25. Razón: agregar comentario
Responder Con Cita