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 :

Une bulle sur un DBGrid


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut Une bulle sur un DBGrid
    Bonjour,
    je souhaiterais afficher une bulle perso sur une dbgrid
    cette bulle sera differente selon la ligne survolée

    je sais comment afficher une bulle mais pas comment recuperer la ligne que je survole avec la souris

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Je fais ca avec une StringGrid

    Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    procedure Tfrm.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;X, Y: Integer);
    Var C, R  : Longint;
        Chaine: String;
    begin
      TStringGrid(Sender).MouseToCell(X, Y, C, R);
      If (c<0)Or(r<0) Then Exit;
      Chaine:= TStringGrid(Sender).Cells[2,R];
      If Chaine<>TStringGrid(Sender).Hint
      Then Begin
        TStringGrid(Sender).Hint := Chaine;
        Application.ActivateHint(Mouse.CursorPos);
      End;
    end;

    Il te faudra peut être l'adapter pour un DBGrid
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    oui moi aussi je l'ai deja fait sur une StringGrid

    le probleme c'est que pour les DBGrid, MouseToCell ne marche pas
    donc je n'arrive pas a savoir sur quelle ligne je me trouve

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Tu peux utiliser une classe parent du DbGrid, genre TCustomGrid, qui, elle a sa propriété MouseToCell de publiée.
    (C'est pas très propre mais ca peut fonctionner)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    bah oauis mais j'ai une DBGrid, et pas une CustomGrid

  6. #6
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    j'ai essayé ça
    procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState;
    X, Y: Integer);
    var
    ScrPt, GrdPt: TPoint;
    Cell: TGridCoord;
    begin
    if not (Sender is TDBGrid) then exit;

    ScrPt := Mouse.CursorPos;
    GrdPt := (Sender as TDBGrid).ScreenToClient(ScrPt);
    Cell := (Sender as TDBGrid).MouseCoord(GrdPt.X, GrdPt.Y);
    if cell.y>=0 then begin
    (sender as tdbgrid).Hint:=aligne[cell.y];
    (sender as tdbgrid).ShowHint:=true;
    Application.ActivateHint(Mouse.CursorPos);
    end;
    end;
    mais ça ne change rien au probleme, je ne recupere pas la ligne ou je suis

    moi je voudrais recuperer la ligne, aller chercher des infos à partir de cette ligne, et les afficher dans une bulle

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Citation Envoyé par jmulans
    bah oauis mais j'ai une DBGrid, et pas une CustomGrid
    Oui, je sais, TCustomGrid est une classe parente de TDbGrid Donc tu peux caster le Sender avec et utiliser les fonctions

    Citation Envoyé par Aide Delphi
    Hiérarchie DbGrid
    System.TObject
    Classes.TPersistent
    Classes.TComponent
    Controls.TControl
    Controls.TWinControl
    Controls.TCustomControl
    Grids.TCustomGrid
    DBGrids.TCustomDBGrid
    Citation Envoyé par Aide delphi
    Hiérarchie StrinGrid
    System.TObject
    Classes.TPersistent
    Classes.TComponent
    Controls.TControl
    Controls.TWinControl
    Controls.TCustomControl
    Grids.TCustomGrid
    Grids.TCustomDrawGrid
    Grids.TDrawGrid
    Donc dans l'exemple que je te donne, tu peux tester avec TCustomGrid au lieu de TStringGrid pour caster le Sender
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. [MFC] Créer une multitude d'infos bulles sur une vue
    Par Philippe320 dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2006, 10h57
  2. Tri sur colonne DBgrid lié à une TTable
    Par Oluha dans le forum Bases de données
    Réponses: 2
    Dernier message: 02/02/2006, 13h42
  3. Comment trier une table paradox dans un Ttable sur un Dbgrid
    Par amireve dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/12/2005, 19h28
  4. Affecter une valleur sur une colone d'un DBGRID
    Par richard038 dans le forum Bases de données
    Réponses: 4
    Dernier message: 03/09/2005, 15h20
  5. simuler un double click sur une liste dans un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/09/2005, 10h45

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