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

Delphi Discussion :

Ligne d'insertion dans une listbox lors d'un drag and drop


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut Ligne d'insertion dans une listbox lors d'un drag and drop
    Bonjour

    J'aimerai afficher une ligne d'insertion entre 2 items d'une listbox lors d'un drag and drop d'une listbox à une autre.

    Quel est le composant utilisé dans Delphi pour la fenêtre de structure qui permet de déplacer un item dans la vue arborescente des composants. Elle possède la possibilité d'afficher cette ligne d'insertion

    Nom : ligne separatrice structure.png
Affichages : 77
Taille : 7,2 Ko

    Quelqu'un aurait ça dans ses archives de code ?

  2. #2
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Responsable informatique, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Responsable informatique, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 093
    Points : 5 649
    Points
    5 649
    Par défaut
    A mon avis, c'est un TTreeview

  3. #3
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Pour un treeview, utilise l'évènement OnCustomDrawItem.
    J'utilise cela aussi pour mon soft.

    Dans l'évènement, il suffit de tester Sender.Dragging.

    Voici ce que j'ai fait:
    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
     
       // -----------------
       if  Sender.Dragging and (Sender.DropTarget=Node) then
       Begin
         var NodeRect := Node.DisplayRect(false); // textonly=false because we want the full rectangle
         pen.mode:=pmXor;
         moveto(0,NodeRect.Bottom-3); LineTo(NodeRect.right,NodeRect.Bottom-3);
         moveto(0,NodeRect.Bottom-2); LineTo(5,NodeRect.Bottom-2);
         moveto(NodeRect.right-5,NodeRect.Bottom-2); LineTo(NodeRect.right,NodeRect.Bottom-2);
         moveto(0,NodeRect.Bottom-1); LineTo(3,NodeRect.Bottom-1);
         moveto(NodeRect.right-5,NodeRect.Bottom-1); LineTo(NodeRect.right,NodeRect.Bottom-1);
         moveto(0,NodeRect.Bottom); LineTo(3,NodeRect.Bottom);
         moveto(NodeRect.right-5,NodeRect.Bottom); LineTo(NodeRect.right,NodeRect.Bottom);
         pen.mode:=pmCopy;
       End;
    On peut certainement faire mieux en utilisant un polygone..mais bon, c'est pour l'exemple.
    Pour le test tu peux te contenter de la premiere ligne:
    moveto(0,NodeRect.Bottom-3); LineTo(NodeRect.right,NodeRect.Bottom-3);

    Si tu veux le code complet du customdrawitem que j'utilise, dis moi, je peux te le retrouver.

  4. #4
    Membre régulier
    Profil pro
    Ingenieur developpement
    Inscrit en
    Septembre 2002
    Messages
    173
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingenieur developpement

    Informations forums :
    Inscription : Septembre 2002
    Messages : 173
    Points : 104
    Points
    104
    Par défaut
    Certes, c'est un Treeview mais est-ce un composant descendant du TTreeview, est-ce le TreeView classique qui aurait ces propriétés ou Embarcadero l'a customisé pour utilisation dans Delphi (Ce serait dommage de ne pas en faire un composant disponible à tous).

    Merci Franck pour ton code sur le treeview. Je vais essayé de l'adapter pour la TCheckListBox.

    Ca peut être intéressant d'avoir l'ensemble du code pour le DrawItem si je passe sur un TreeView.

Discussions similaires

  1. [Toutes versions] Suppression de lignes multiple choisies dans une listbox
    Par abeilles26 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/04/2013, 14h17
  2. Réponses: 1
    Dernier message: 01/09/2011, 15h45
  3. colorer une ligne sur deux dans une listbox
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/08/2010, 13h59
  4. Affichage dans une JList lors d'un drag and drop
    Par Stefounette dans le forum Général Java
    Réponses: 2
    Dernier message: 05/05/2010, 09h36
  5. 2 lignes les memes dans une listbox
    Par kalou26 dans le forum C++Builder
    Réponses: 9
    Dernier message: 20/06/2006, 16h03

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