Thema: Delphi Drag and drop

Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Drag and drop

  Alt 11. Feb 2004, 10:48
Thx, Dein Code ist etwas übersichtlicher, als meiner und auch kleiner. So gefällts mir besser. Nur noch ein Schönheitsfehler, zumindest aus meiner Sicht 8) :

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

procedure TForm1.ListBox2DragDrop(Sender, Source: TObject; X, Y: Integer);
var
  lbSource,lbSender : TListBox;
begin
  lbSource := Source as TListBox;
  lbSender := Sender as TListbox;
  lbsender.Items.Add(lbSource.Items[lbSource.ItemIndex]);
  lbSource.Items.Delete (lbSource.ItemIndex);
end;

procedure TForm1.ListBox2MouseDown(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;
Dieser Code steht jetzt 4mal im Programm (für 4 Listboxen). Es ist also immer derselbe, bis auf den Prozedur-Namen. Wie kann ich den verallgemeinern oder besser noch zur Laufzeit auswerten, je nachdem, wieviele Listboxen ich im Endeffekt brauche ?

Mir fällt gerade ein, daß ich das ganze auf die Form übertragen könnte. Aber das DragDrop der Form hat kein accept. So wirds wohl nicht gehen, oder was muß ich da hin schreiben ?

Delphi-Quellcode:
procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer);
begin

end;
Gruß
Hansa
  Mit Zitat antworten Zitat