IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Comportement d'un Virtual String Tree étrange


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Points : 113
    Points
    113
    Par défaut Comportement d'un Virtual String Tree étrange
    Bonjour Mesdames Messieurs,

    Avez-vous déjà eu ce genre de bizarrerie ?
    En gros lorsque je fais un drag & drop sur mon TVirtualStringTree de bas en haut (si le node source est plus bas dans la liste que le node cible) les nodes ne bougent pas, à l'inverse de haut en bas ils switch, voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     
    uses
      ActiveX;
     
     
    procedure TForm1.vt1DragOver(Sender: TBaseVirtualTree; Source: TObject; Shift: TShiftState;
      State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean);
    begin
      Accept := (Source = Sender);
    end;
     
    procedure TForm1.vt1DragDrop(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;
      pTarget := Sender.DropTargetNode;
     
      case Mode of
        dmNowhere: attMode := amNoWhere;
        dmAbove: attMode := amInsertBefore;
        dmOnNode, dmBelow: attMode := amInsertAfter;
      end;
     
      Sender.MoveTo(pSource, pTarget, attMode, False);
     
    end;
     
    Also do not forget to set toAutoDeleteMoveNodes to False in TreeOptions.AutoOptions.
    Pris de ce lien http://stackoverflow.com/questions/8...odes-in-a-list

    merci pour vos infos

  2. #2
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Points : 113
    Points
    113
    Par défaut
    en fait il faut jouer avec ces options :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     case Mode of
            dmNowhere: attMode := amNoWhere;
            dmAbove: attMode := amInsertAfter;
            dmOnNode: attMode := amInsertBefore;
            dmBelow: attMode := amInsertBefore;
          end;
    merci à moi-même !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 15
    Dernier message: 02/03/2012, 17h41
  2. Réponses: 1
    Dernier message: 25/10/2009, 20h26
  3. [2.0] comportement étrange sur condition sur string.indexOf
    Par franculo_caoulene dans le forum VB.NET
    Réponses: 26
    Dernier message: 18/06/2008, 12h09
  4. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo