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

Composants VCL Delphi Discussion :

Comment faire du Drag&Over et Drag&Drop sur un TTreeView ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut Comment faire du Drag&Over et Drag&Drop sur un TTreeView ?
    Bonjour à tous,
    j'ai le treeview suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    TOTO
       L Fils1
           L champs1
           L champs2
           L champs3
       L Fils2
           L p1
           L p2
           L pn
    TATA
    TITI
    Je veux pouvoir changer l'ordre des champs via la souris. (sans doute à l'aides des fcts dragover & dragdrop).
    Par contre les champs : champs1...3 peuvent être placés que dans la branche Fils1, les champs p1...n que dans la branche Fils2 etc etc etc

    Comment faire svp ???

    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 44
    Points : 52
    Points
    52
    Par défaut
    Salut,

    Pour le Treeview tu définis :
    Propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DragMode = dmAutomatic;
    function OnDragOver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Test pour autoriser l'action de déplacement 
    procedure TForm1.TreeView1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    var
      node : TTreeNode;
    begin
      node:=TreeView1.GetNodeAt(X, Y);
      if (node<>nil) and (TreeView1.Selected<>nil) then
    // le noeud déplacé et le noeud de réception ont le même noeud parent ?
        Accept := (TreeView1.Selected.Parent = node.Parent)  
      else
        Accept := false;
    end;
    function OnDragDrop
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //  Déplacement du noeud
    procedure TForm1.TreeView1DragDrop(Sender, Source: TObject; X, Y: Integer);
    var
      node : TTreeNode;
    begin
      node := TreeView1.GetNodeAt(X, Y);
      if (node<>nil) and (TreeView1.Selected<>nil) then
        TreeView1.Selected.MoveTo(node, naInsert);
    end;
    Tu devrais obtenir le résultat souhaité.

    @+

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

Discussions similaires

  1. comment faire la mise en page de l impression directe sur un port com
    Par kameleon80 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 19/04/2013, 09h06
  2. Réponses: 3
    Dernier message: 29/01/2008, 11h32
  3. Réponses: 1
    Dernier message: 22/08/2006, 12h07
  4. Réponses: 1
    Dernier message: 04/08/2006, 12h47
  5. Comment faire un Drag&Drop vers Windows ?
    Par Lung dans le forum Composants VCL
    Réponses: 17
    Dernier message: 21/06/2004, 13h10

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