Jak skopiować Node z VirtualStrngTree do drugiego VirtualStringTree?

Odpowiedz Nowy wątek
2014-08-03 09:29

Rejestracja: 7 lat temu

Ostatnio: 1 miesiąc temu

0

Witam,

Mam kod:

procedure TfrmMenu.VSTDragDrop(Sender: TBaseVirtualTree; Source: TObject;
  DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState;
  Pt: TPoint; var Effect: Integer; Mode: TDropMode);
var
  pSource, pTarget: PVirtualNode;
  attMode: TVTNodeAttachMode;
begin
  pSource := TVirtualStringTree(Source).FocusedNode;
  SourceRepoData := VST.GetNodeData(pSource);

  pTarget := Sender.DropTargetNode;

  case Mode of
    dmNowhere: attMode := amNoWhere;
    dmAbove: attMode := amInsertBefore;
    dmOnNode, dmBelow: attMode := amInsertAfter;
  end;

  Sender.MoveTo(pSource, pTarget, attMode, False);
end;
procedure TfrmMenu.VSTDragOver(Sender: TBaseVirtualTree; Source: TObject;
  Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode;
  var Effect: Integer; var Accept: Boolean);
begin
  Accept := Source = frmRepository.VST; // VirtualStringTree innego okna
end;

Ale po próbie przeciągnięcia nody z drzewa znajdującego się w innym oknie do docelowego drzewka dostaję komunikat:

First chance exception at $749D0F22. Exception class EAssertionFailed with message 'The source tree must contain the source node. (E:#Programowanie#Komponenty\VirtualTreeviewV5.3.0\Source\VirtualTrees.pas, line 31602)'. Process ActionScript.exe (6548)

Powyższy przykład działa, jeżeli przenoszę węzły w tym samym nodzie a ja potrzebuję kopiować je z innego drzewa.

edytowany 3x, ostatnio: user322, 2014-08-03 09:30

Pozostało 580 znaków

2015-07-03 14:46

Rejestracja: 13 lat temu

Ostatnio: 4 tygodnie temu

0

Witam,

Czy udało Ci się znaleźć rozwiązanie? Też próbuję przenosić - kopiować nody między dwoma drzewami i dostaję powyższy komunikat :/ Komuś się udało?

Pozdrawiam

Pozostało 580 znaków

2015-07-03 16:22
Moderator Delphi/Pascal

Rejestracja: 8 lat temu

Ostatnio: 22 godziny temu

Lokalizacja: Tuchów

0

@yabolik - zobacz tutaj (rozwiązanie jest zweryfikowane).


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0