Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Listview-Items zu anderen Komponten draggen (https://www.delphipraxis.net/166939-listview-items-zu-anderen-komponten-draggen.html)

MiKaEr 6. Mär 2012 17:11

Listview-Items zu anderen Komponten draggen
 
ich beschäftige mich noch nicht lange mit drag n drop.

aber eine fage habe ich:
ist es möglich, ein listview-item über andere komponenten zu ziehen, dort loszulassen und aktionen auszuführen?

Popov 6. Mär 2012 17:44

AW: Listview-Items zu anderen Komponten draggen
 
Was verstehst du unter Aktion ausführen? Den OnClick des Items?

Ansonsten kannst du schicken was du willst. Wenn du ein Item ziehst, dann ziehst du nicht direkt den Item selbst. Natürlich fragst du im Ziel ob der Sender ein Item war, aber was dann übergeben wird, liegt an dir.

Bummi 6. Mär 2012 17:54

AW: Listview-Items zu anderen Komponten draggen
 
bei DragMode=dmAutomatic beispielsweise so
Delphi-Quellcode:
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  TListBox(Sender).Items.Add(TListView(Source).Items[TListView(Source).ItemIndex].Caption)
end;

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

MiKaEr 6. Mär 2012 18:24

AW: Listview-Items zu anderen Komponten draggen
 
ahhh.. mein fehler war, dass ich dragmode nicht auf "automatisch" hatte!

ich versuche gerade noch herauszubekommen, wie denn bspw. der tab-caption eines pagecontrols ist, wenn ich da drüber fahre (ist nur ein beispiel).
die koordinaten X und Y sind vorhanden, aber ich weiß nicht wie ich an den caption komme.

bei einer listbox funktioniert das ganz einfach mit itemAtPos(), aber wie bei einem pagecontrol und dessen tab?

hat sich erledigt!
Delphi-Quellcode:
TabControl1.Tabs[TabControl1.IndexOfTabAt(X, Y))

mz23 8. Mär 2012 07:14

AW: Listview-Items zu anderen Komponten draggen
 
Zitat:

Zitat von Bummi (Beitrag 1154835)
bei DragMode=dmAutomatic beispielsweise so
Delphi-Quellcode:
procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
  TListBox(Sender).Items.Add(TListView(Source).Items[TListView(Source).ItemIndex].Caption)
end;

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

Danke Bummi,
diese Lösung werde ich mir kopieren.
Werde das bestimmt auch mal benötigen.

Toll, was manche von Euch draufhaben - Respekt.
Schöne Grüße aus Nürnberg,
Manfred


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz