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 :

[d�butant] Listview et double-clic


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut [d�butant] Listview et double-clic
    Bonjour et oui c'est encore moi. Tjrs des gros pbs avec le composant listview.
    Enonc� du probl�me tr�s simple, solution impossible (pour moi lol)
    Voil�, j'aimerais que lorsque je double-clique sur n'importe quelle "case" de ma liste, �a me renvoie le num�ro de la ligne correspondante.
    Parce que voil�, ensuite je suis sens� ouvrir une autre fenetre et cette autre fenetre a besoin de quelques infos (pas toutes) situ�es dans les cases de la ligne qui a �t� selectionn�e.
    Je ne sais pas si j'ai �t� assez clair, du moins je l'esp�re. Je suis sur cette gal�re depuis ce matin et j'avoue que je commence � perdre espoir..
    Je vous remercie par avance, toute proposition (d�cente ) est la bienvenue 8)

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Par d�faut
    Salut,

    Une solution est d'utiliser la propri�t� Selected de la ListBox.
    Exemple :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    // Dans l'evenement OnClick de la ListBox
    int index = 0;
    while (!ListBox->Selected[index] && index < ListBox->Count)
    {
    index++
    }
    En sortie de la boucle, si la valeur de index est inf�rieure au nombre d'items dans la ListBox, alors index est l'indice de l'item s�lectionn�.

    J'esp�re que �a r�pond � ta question.

  3. #3
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut
    Salut bensh merci pour ta r�ponse mais ma question concerne le composant TListView et non TListBox; Avec TlistBox en effet pas de pbs lol, mais �a m'a l'air un brin plus complexe avec TLIstView.
    Je suis sur ce $#%^&&# de probl�me depuis ce matin

  4. #4
    Membre �prouv�
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Par d�faut
    J'ai peut �tre pas bien compris ce que tu souhaites faire mais la propri�t� ItemIndex de ta TListView me semble �tre la solution.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Par d�faut
    D�sol�, j'avais mal lu la question.

    As-tu essay� la propri�t� ItemFocused pour r�cup�rer l'item s�lectionn� et ensuite la m�thode GetNextItem en sp�cifiant les directions Right et Left. De proche en proche, tu peux ainsi r�cup�rer tous les �l�ments d'une ligne.

  6. #6
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut
    Salut bebeours, effectivement c'est l'itemindex que je cherche � r�cup�rer. Je viens de tester � l'instant, le point positif c'est que �a ne marche que lorsque je clique sur des "cases" de ma premi�re colonne.
    Par contre lorsque je clic sur les cases des autres colonnes, �a me renvoie toujours -1.
    Y a-t-il un moyen de r�soudre ce probl�me, genre une sorte d'ItemIndex pour les colonnes ?
    Damn j'en peux plus lol, la TListview va me d�gouter de builder avant d'avoir commenc�
    Merci pour la piste, je sens que je suis pas loin, du moins j'esp�re...

  7. #7
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut
    Oops bensh d�sol� j'avais pas vu ton message. Merci pour l'astuce ItemFocused je note �a peut tjrs servir, mais en fait je cherche vraiment uniqument le numero de la ligne.
    Merci � tous les 2 de me p�ter main forte en tout cas, je me sens moins seul

  8. #8
    Membre �prouv�
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Par d�faut
    Et si tu utilises :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    ListView1->Selected->Index;
    �a fonctionne mieux ?

  9. #9
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut
    Re bebeours.
    J'avais test� cette solution ce matin et elle est pire que celle que tu m'as aimablement propos� tt � l'heure.
    A savoir que tjrs pareil, pour les items de la premi�re colonne aucun souci �a renvoie chaque fois l'index associ� nickel.
    Par contre qd je double clique sur des cases hors de la premi�re colonne, j'ai une exception "Access violation at adress..." lol. Enfin non pas lol du tout ^^
    Je commence � croire que je que je veux faire est impossible, et pourtant j'ai vu le m�me systeme sur un autre logiciel (dont je n'ai pas le source of course)
    Merci quand m�me.

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    481
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 481
    Par d�faut
    Voir � :
    http://groups.google.fr/groups?q=LVHITTESTINFO+lvhtti&hl=fr&lr=&ie=UTF-8&selm=3977B64D.77D0A146%40cornell.edu&rnum=1

  11. #11
    Membre �prouv�
    Avatar de bebeours
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    103
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 103
    Par d�faut
    J'ai une autre piste :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    ListView1->GetNearestItem(ListView1->ScreenToClient(Mouse->CursorPos,sdLeft))->Index;
    Ca donne quoi ?

  12. #12
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut
    Alors l� je dis Waowwwwwwwwwwwww youpi youpi Pasqualini mon sauveur Yeah !!
    Mais c'est un truc de malade cette solution, tu m'�tonnes je pouvais toujours chercher lol.

    Re bebeours, au moment o� je poste ce message je n'ai pas encore test� ta solution tellement je suis content d'avoir trouv� un bout de code qui marche.
    Mais je vais le faire, et si �a marche ce serait excellent parce que l� c'est quand m�me "hot", jamais j'aurais pu trouver tout seul.
    Je te tiens au courant, l� je fais un break parce que overdose de BCB, j'y suis depuis 10h ce matin non stop
    Merci encore � vous tous et sp�ciale d�dicace � Pasqualini.
    Heureusement que y a des gens comme vous, �a fait vraiment plaisir 8)

  13. #13
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    49
    D�tails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 49
    Par d�faut
    Bonsoir bebeours, je viens de tester le bout de code que m'as donn�, mais malheureusement chez moi il ne passe pas � la compilation.
    Et comme d'une part je n'ai pas les comp�tences requises pour le corriger, et que d'autre part gr�ce � Pasqualini "�a tourne" � pr�sent, je pense que je vais laisser comme �a.
    Encore une fois merci de t'�tre (de vous �tre) employ�s � r�soudre ce probl�me, vous m'avez enlev� une sacr�e �pine du pied.

    ===== Edition ===========

    Au cas o� le lien de pasqualini viendrait � ne plus marcher - on n'est jamais trop prudent, je copie ci dessous la portion de code qui m'a sauv� la vie, si �a peut �viter � d'autres de gal�rer comme moi...

    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
     
     
    void __fastcall TForm1::ListView1MouseDown(TObject *Sender,
       TMouseButton Button, TShiftState Shift, int X, int Y)
    {
       LVHITTESTINFO lvhtti;
       lvhtti.pt = Point(X, Y);
     
       if (SNDMSG(ListView1->Handle, LVM_SUBITEMHITTEST, 0,
                  reinterpret_cast<LPARAM>(&lvhtti)) != -1)
       {
          const int row = lvhtti.iItem;
          const int col = lvhtti.iSubItem;
     
          ShowMessage(row);
          ShowMessage(col);
       }
    }

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. double clic listview +usercontrol
    Par genie-netcom dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 16/12/2009, 12h30
  2. Cocher une checkbox au double clic dans un listview
    Par fred65200 dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 06/01/2009, 12h12
  3. R�ponses: 2
    Dernier message: 09/10/2007, 11h31
  4. R�ponses: 3
    Dernier message: 25/08/2006, 14h01
  5. R�ponses: 5
    Dernier message: 08/06/2006, 16h11

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