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

C++Builder Discussion :

Drag & Drop entre 2 listBox : transfert items [Sources]


Sujet :

C++Builder

  1. #1
    Expert confirmé
    Avatar de netah25
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    3 233
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 233
    Points : 4 972
    Points
    4 972
    Par défaut Drag & Drop entre 2 listBox : transfert items
    Bonjour

    Je cherche a afficher une list de base dans un ListBox. Il faudrat que l'utilisateur puisse en drag&drop remplir un second listBox.

    Je ne suis pas marié avec le ListBox, si vous avez un truc mieux a me proposer , je suis preneur

    J'ai bien compris qu'il fallait travailler avec le listBox destination apres avoir placer le listBox de bas a :

    Je pense bien accepter les drops :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::ListBox2DragOver(TObject *Sender, TObject *Source,
          int X, int Y, TDragState State, bool &Accept)
    {
    Accept = true ;
    }
    Par contre je ne sais que mettre dans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void __fastcall TForm1::ListBox2DragDrop(TObject *Sender, TObject *Source,
          int X, int Y)
    {
    // ICI ....
    }
    Afin de retrouver, sans l'effacver de la source, le nom de l'items cliqué pour le drag ...

    Merci pour l'aide que vous pourrez m'apporter
    Netah - admin
    mon site
    Linux & Mac

  2. #2
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    y'a pas mal de possibilités de gestion:
    voilà un exemple avec multiselect...

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    void __fastcall TForm1::ListBox1DragOver(TObject *Sender, TObject *Source,
          int X, int Y, TDragState State, bool &Accept)
    {
            Accept=true;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::ListBox2DragOver(TObject *Sender, TObject *Source,
          int X, int Y, TDragState State, bool &Accept)
    {
            //gestion multiselect : au moins 1 doit etre selectionné
            Accept=false;
            for (int i=0;i<ListBox1->Items->Count && !Accept;i++){
               if(ListBox1->Selected[i]) Accept=true;
            }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::ListBox2DragDrop(TObject *Sender, TObject *Source,
          int X, int Y)
    {
            for (int i=0;i<ListBox1->Items->Count;i++)
            {
               if(ListBox1->Selected[i]){
                    String ItemTexte = ListBox1->Items->Strings[i];
     
                    //choisir ça si la place d'arrivée ne compte pas..
                    //ListBox2->Items->Add(ItemTexte);
     
                    //sinon si la place d'arrivée compte
                    TPoint pt;
                    pt.x=X;
                    pt.y=Y;
                    int item_pos = ListBox2->ItemAtPos(pt,true);
                    if(item_pos==-1){
                      ListBox2->Items->Add(ItemTexte);
                    }else{
                        ListBox2->Items->Insert(item_pos,ItemTexte);
                    }
     
               }
     
            }
            //optionnel : pour effacer de la source
            ListBox1->DeleteSelected();
     
            ListBox2->SetFocus();
    }

  3. #3
    Expert confirmé
    Avatar de netah25
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    3 233
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 233
    Points : 4 972
    Points
    4 972
    Par défaut
    Cela fonctionne comme je le voulais

    Merci M'sieu !
    Netah - admin
    mon site
    Linux & Mac

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

Discussions similaires

  1. [XL-2010] Aide sur Drag and drop entre x ListBox
    Par jacky72 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/05/2014, 23h32
  2. [Débutant] Drag Drop entre deux ListBox qui contiennent des objets
    Par shaun_the_sheep dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/10/2012, 17h15
  3. [VBA-E]drag and drop entre deux listbox
    Par Yolak dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/06/2012, 14h37
  4. Drag and drop entre deux ListBox
    Par simoinfonet dans le forum Langage
    Réponses: 0
    Dernier message: 18/04/2008, 18h53
  5. Drag and Drop entre listbox
    Par zwoke dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/07/2004, 14h10

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