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/)
-   -   Problem mit VirtualTreeView und Delphi XE2 (https://www.delphipraxis.net/167700-problem-mit-virtualtreeview-und-delphi-xe2.html)

thmfrnk 13. Apr 2012 17:38

Problem mit VirtualTreeView und Delphi XE2
 
Moinsen,

ich hab mein Projekt vor kurzem nun zu XE2 portiert, nach einigen schwierigkeiten mit Komponenten funktioniert nun alles. Nun ist mir aufgefallen das das Drag'n'Drop der VirtualTreeList nicht mehr funktioniert.. Der Node den ich verschiebe verschindet danach einfach...

hier der wichtige Codeteil:

Delphi-Quellcode:
procedure TfrmMain.treeDragDrop(Sender: TBaseVirtualTree; Source: TObject;
  DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState;
  Pt: TPoint; var Effect: Integer; Mode: TDropMode);
var
  n: PVirtualnode;
begin
  if assigned(DragNode) then
   begin
    n := Tree.GetNodeAt(pt.X, pt.Y);
    if N<>nil then
     begin
       Tree.MoveTo(DragNode, N, TVTNodeattachMode.amAddChildLast, false);
       UpdateKinds;
     end;
   end;
end;

procedure TfrmMain.treeDragOver(Sender: TBaseVirtualTree; Source: TObject;
  Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode;
  var Effect: Integer; var Accept: Boolean);
var
  n: PVirtualNode;
begin
   Accept := false;
   if DragNode <> SceneNode then
    if DragNode <> FixturesNode then
     if DragNode <> ProjectNode then
       if Source is TVirtualStringTree then
         begin
          n := tree.GetNodeAt(pt.X, pt.Y);
          if n<>dragNode then
           if IsFixtureBuilder then
             Accept := true
              else
               begin
                if not Tree.HasAsParent(n, FixturesNode) then
                 if n <> FixturesNode then
                   Accept := true;
               end;
         end;
end;

thmfrnk 13. Apr 2012 17:49

AW: Problem mit VirtualTreeView und Delphi XE2
 
mhh DragType stand aut dtOLE.. mit dtVCL gehts jetzt.. warum ging das aber bei Delphi 2010? Echt komisch..


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