Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi D5: TTreeView ignoriert Zuweisung DragCursor? (https://www.delphipraxis.net/115062-d5-ttreeview-ignoriert-zuweisung-dragcursor.html)

Codehunter 5. Jun 2008 09:05


D5: TTreeView ignoriert Zuweisung DragCursor?
 
Ich bin gerade darauf gestoßen daß TTreeView in D5 anscheinend die Eigenschaft DragCursor komplett ignoriert und immer crDrag setzt. Nur warum ist mir nicht so ganz klar. Eigentlich wollte ich zur Laufzeit in Abhängigkeit der Anzahl gezogener Objekte über das Event OnDragOver abwechselnd crDrag oder crMultiDrag verwenden. Es erscheint aber immer der Cursor crDrag, egal was ich zuweise. Woran liegt das? Wenn ich in OnDragOver Accepted auf false setze dann wechselt der DragCursor zu crNo, also insofern funktioniert es schon. Es macht aber keinen Unterschied ob ich DragCursor in der IDE oder zur Laufzeit ändere und auch egal zu welchem Cursor, es wird immer crDrag verwendet.

michaelg 6. Jun 2008 03:14

Re: D5: TTreeView ignoriert Zuweisung DragCursor?
 
Wenn Du den "globalen" DragCursor benutzt, gehts nicht, aber wenn Du den Sender (in diesem Fall direkt l1:tListbox) nimmst, dann klappts.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    l1: TListBox;
    l2: TListBox;
    procedure l2DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure l1StartDrag(Sender: TObject; var DragObject: TDragObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

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

procedure TForm1.l1StartDrag(Sender: TObject; var DragObject: TDragObject);
  begin
    //l1 ist eine tListbox mit Multiselect:=True
    if l1.SelCount>1 then l1.DragCursor:=crMultiDrag //<<<<<<<<< HIER!
                     else l1.DragCursor:=crDrag;
  end;

Codehunter 6. Jun 2008 07:00

Re: D5: TTreeView ignoriert Zuweisung DragCursor?
 
Achsoooooo das muss man bei der Drag-Quelle setzen und nicht beim Drag-Ziel. Da muss man auch erstmal drauf kommen denn erscheinen tut der Cursor ja über dem Ziel. Ok danke dir so gehts.


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