Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TListBox Drag Drop (https://www.delphipraxis.net/188066-tlistbox-drag-drop.html)

API 28. Jan 2016 05:25

TListBox Drag Drop
 
Moin

Bei meiner Listbox möchte ich Drag & Drop implementieren. DragMode ist auf dmAutomatic.
Nun wird bei einer Drag-Operation immer das OnClick Ereignis ausgelöst, was es nicht sollte. Wie kann das unterbunden werden?

Delphi-Quellcode:
procedure TfrmMain.ListBoxDragDrop(Sender, Source: TObject; X, Y: integer);
begin
  with Sender as TListBox do
  begin
    // mach was
  end;
end;

procedure TfrmMain.ListBoxDragOver(Sender, Source: TObject; X, Y: integer;
  State: TDragState; var Accept: boolean);
var
  aItem: integer;
begin
  with Sender as TListBox do
  begin
    aItem := ItemAtPos(Point(X, Y), False);
    Accept := (Source is TListBox) and (aItem <> dragIndex) and (aItem < Items.Count);
    if Accept then
      ItemIndex := aItem;
  end;
end;

jaenicke 28. Jan 2016 06:55

AW: TListBox Drag Drop
 
Das ist bei einer Listbox so, daran wirst du AFAIK nichts ändern können.

Vielleicht wäre die VirtualStringTree etwas für deinen Zweck. Da bekommst du separat ein OnFocusChanged (ich nehme mal an darum geht es dir?), OnClick usw.

API 11. Feb 2016 04:50

AW: TListBox Drag Drop
 
Das ist schade, dass das nicht möglich ist. Möchte für dieses kleine Programm jedoch nicht auf den VST umsteigen, da es schön schlank bleiben sein.
Ich kombiniere das Draggen nun mit der Strg-Taste. Wird diese gedrückt gehalten beim Klicken auf ein Item, wird der Drag-Drop Modus aktiviert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 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