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 :

Recupérer la ligne et la colonne d'une DBGrid


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut Recupérer la ligne et la colonne d'une DBGrid
    Bonjour

    Je cherche à récupérer le numéro de la ligne (row) et la colonne (col) d'une DBGrid selon la position de la souris.

    Dans l'évenement OnMouseMove du DBGrid je cherche à afficher un Hint dans lequel j'affiche le n° ligne et colonne sous le pointeur de la souris, j'ai essayé avec MouseCoord, mais ça ne marche pas !!. elle renvoit la position relative mais pas absolue (à partir du début de la liste : imaginez un DBGrid avec 1000 lignes).

    Merci d'avance ...

  2. #2
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Salut,

    Regardes surement du côté de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LVM_SUBITEMHITTEST // via un SendMessage
    et
    tout ca, utilisé dans le gestionnaire de l'évènement OnMouseDown.

    Il y avait un sujet a ce propos sur ce forum, mais je ne sais plus le nom de la personne ayant donné cette solution.

    J'avais fait un test pour je ne sais plus quelle occasion, c'est dans un "foutoir" de test en vrac, ne me demandes pas trop d'éclairage dessus: ca risque d'être dur (j'ai oublié le "pourquoi" de la chose), mais je suis sur que tu vas en tirer le nécessaire:
    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
     
    void __fastcall TForm2::ListView1MouseDown(TObject *Sender, TMouseButton Button,
    	  TShiftState Shift, int X, int Y)
    {
    int ligne;
    int colonne;
      LVHITTESTINFO lvhtti;
      lvhtti.pt = Point(X, Y);
      if ( SendMessage(ListView1->Handle, LVM_SUBITEMHITTEST, NULL, reinterpret_cast<LPARAM>(&lvhtti)) != -1   )
      {
    	 ligne = lvhtti.iItem;
    	 colonne = lvhtti.iSubItem;
    		TRect temp_rect =  ListView1->Items->Item[ligne]->DisplayRect(drBounds);
    			TComboBox * temp_combo = new TComboBox(this);
    				temp_combo->Parent = ListView1;
    				temp_combo->Top = temp_rect.Top;
    				if (colonne == 0)
    				{
    					temp_combo->Left = temp_rect.Left;
    				}
    				else
    				{
    				int posLeft = temp_rect.Left;
    					for (int i = 0; i < colonne; i ++)
    					{
    						posLeft +=  ListView1->Column[i]->Width;
    					}
                    temp_combo->Left = posLeft;
    				}
    				temp_combo->Width = ListView1->Column[colonne]->Width; //temp_rect.Width();
    				temp_combo->Height = temp_rect.Height();
    				temp_combo->Items->Add("essai1");
    				temp_combo->Items->Add("essai2");
    				temp_combo->OnClick = TempComboClick;
     
      }
    }
    Voili, désolé, peu d'info complémentaire en plus la dessus -> je suis complètement KO (malade).

    @+

  3. #3
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Et M..de,
    Je suis tellement dans le gaz que je n'ai pas vu que tu parlais de DBGrid, et moi de TListView.
    Désolé.
    Je retourne me coucher...

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    Merci comme même pour ta réponse, effectivement cette solution est à proposer pour une listview.

    Cependant, mon problème est de chercher un moyen de récupérer le contenu de la cellule qui se trouve sous le pointeur de la souris, pour l'afficher par la suite dans une Info bulle (sinon, afficher tout le contenu de la ligne).

    J'ai essayé MouseCoord, mais elle donne la position relative .

    Merci encore une fois.

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    Je suis bloqué, si quelqu'un connait une solution ou un autre composant, je suis preneur.

    Merci

Discussions similaires

  1. limiter le nombre de lignes et de colonnes d'une feuille excel
    Par Laye dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/01/2023, 21h55
  2. Somme en lignes et en colonnes d'une feuille
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/05/2007, 09h41
  3. Réponses: 2
    Dernier message: 19/04/2007, 11h23
  4. Réponses: 12
    Dernier message: 09/01/2007, 14h28
  5. Recupérer des lignes dans un fichier ou une variable
    Par vince2005 dans le forum Langage
    Réponses: 12
    Dernier message: 29/09/2006, 18h46

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