Autor Beitrag
XCoder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36

Win XP
D7 Prof
BeitragVerfasst: So 22.06.03 12:20 
Hallo

Weis einer von euch wie ich Drag und Drop bei einer TListBox machen kann?

Also ich habe zum Beispiel 3 Einträge drin und möchte mit der Maus den 3 Eintrag an die erste stelle machen wie kann ich das anstellen?

Oder ich möchten zum Beispiel das jemmand vom Desktop eine Datei markiert und sie dann auf die TListBox zieht das der die da auch einfügen kann das ist es zum Beispiel an 4 stelle oder so.

Wie kann ich das schaffen?
christoph
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

Win XP(SPack1),Win 2000(Spack3)
Delphi 6(Spack2)
BeitragVerfasst: So 22.06.03 17:18 
Hi um Items zu verschieben

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure MoveItems(var Target: TObject; X, Y: Integer);
var
  NPos: Integer;
begin
  with Target as TListBox do
  begin
    NPos := ItemAtPos(Point(X, Y), False);
    if (NPos >= Items.Count) then
      Dec(NPos);
      Items.Move(ItemIndex, NPos);
    ItemIndex := NPos;
  end;
end;



Aufrufen folgendermassen

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm_Raum_1.PlayList1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
If source = Sender then begin
MoveItems(Source,x,y);


Gruss Christoph
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: So 22.06.03 21:09 
Hi,

damit Christophs Code funktioniert musst Du noch folgendes machen:

Dragmode der ListBox auf dmAutomatic stellen und diesen code ins OnDragOver der ListBox schreiben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source is TListBox;
end;


MFG

- Ernesto -