Thema: Delphi Problem mit Drag Drob

Einzelnen Beitrag anzeigen

Bernd29bln

Registriert seit: 28. Feb 2005
Ort: Berlin
281 Beiträge
 
Delphi 7 Professional
 
#1

Problem mit Drag Drob

  Alt 23. Mär 2005, 00:05
Hallo,

ich möchte von einer tfilelist in eine listbox schieben wie kan ich das machen. ich nur wie ich von listbox zu listbox schiebe .

Delphi-Quellcode:
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TListBox;
end;

 
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var i,i2 : integer;
    lbSource,lbSender : TListBox;
begin
  lbSource := Source as TListBox;
  lbSender := Sender as TListbox;
  //Drag and drop der gleichen LB verhindern
  if lbSource <> lbSender then
    begin
      //items kopieren
      //du löschst items, deswegen müßte die for Schleife rückwärts zählen, dann würden die itmes aber spiegelverkehrt hinzugefügt
      //ich nehm da lieber eine while schleife, eine for-schleife macht dir das leben schwerer (finde ich)
      i:=0;
      while i<=lbSource.count-1 do //hier muß Source stehen, du willst von source nach Sender!
        begin
          if lbSource.Selected [i] then
            begin
              //Variante 1 = hinzufügen
              //lbSender.Items.Add(lbSource.Items[i]);

 
              //Variante 2 = Einfügen
              i2:=lbSender.ItemAtPos(point(x,y),false);
              lbSender.Items.insert(i2,lbSource.Items[i]);

 
              //Einträge in sourceListbox löschen
              lbSource.Items.Delete (i);
              continue; //inc(i) "überspringen" und mit gleichem item (wegen Löschung) weiterarbeiten
            end;
          inc(i);

 
end;
   end;
  end;

 
procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if button = mbLeft then with Sender as TListBox do begin
    if ItemAtPos (Point (x,y),true) >= 0 then
      BeginDrag (false);
  end;
end;
wo muss man was ändern wen es den geht

gruss bernd
Bernd
  Mit Zitat antworten Zitat