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 :

[TMS TAdvChartView] Obtenir la valeur de X durant le on MouseMove


Sujet :

Composants VCL Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2022
    Messages : 36
    Points : 26
    Points
    26
    Par défaut [TMS TAdvChartView] Obtenir la valeur de X durant le on MouseMove
    Bonjour

    Je découvre TMS Chart et bien qu'ayant lu la doc, je ne parviens pas à récupérer l'index de X au passage de la souris sur une verticale.
    Un morceau de code permet de récupérer les valeur du point.
    Il y a une propriété SingleXValue que je pense être celle que je recherche mais après avoir modifié le code avec cette propriété cela me retourne systématiquement 0 !
    J ai donc besoin de votre aide.
    D avance merci.

    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
    procedure TForm2.Chart1MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    var
      i: Integer;
      cp: TchartPOint;
      s: string;
    begin
      with Chart1.Panes[1] do
      begin
        s := '';
        for i := 0 to series.Count - 1 do
        begin
          cp := GetChartPointAtCrossHair(i);
          if s = '' then
          begin
            s := floattostr(cp.SingleXValue);
          end
          else
          begin
            s := s + ':' + floattostr(cp.SingleXValue);
          end;
        end;
        Label1.Caption := s;
      end;
    end;

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    En même temps, il y a une boucle, vous récupérez une série entière et non ce qu'il y a sous le curseur de souris, sauf si GetChartPointAtCrossHair filtre les points sous la souris et renvoie une valeur neutre si rien n'est dessous.

    C'est l'exemple copier-coller depuis la documentation, cependant Panes[1] au lieu de Panes[0] ... êtes-vous sur de vous ?
    Que donne SingleValue au lieu de SingleXValue ?
    Ce GetChartPointAtCrossHair donne-t-il vraiment un TChartPoint complet ou juste une vision tronquée, une sorte d'échantillonnage par exemple et non un vrai point, faudrait en vérifier l'implémentation.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2022
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    J'ai effectivement modifié le Pane[0] pour changer de type d'affichage et chercher à comprendre ce que je récupérais...

    Mon Panes[0] est un chart de type candlestick et SingleValue renvoit le Close de la bougie.

    Pour Panes[1] il s'agit d'un chart en Histogram et SingleValue donne la valeur Y.

    Effectivement GetChartPointAtCrossHair filtre les points sous la souris et renvoie une valeur si rien n'est dessous, valeur qui est -7.21....

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2022
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2022
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Pour info le pb venait du mode d'ajout des points... en y ajoutant un index, tout est rentré dans l'ordre.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 10/08/2006, 15h44
  2. Réponses: 13
    Dernier message: 06/07/2006, 11h25
  3. Réponses: 5
    Dernier message: 30/05/2006, 12h29
  4. [MySQL] Obtenir la valeur de l'auto-increment lors d'une insertion
    Par yazerty dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/01/2006, 15h18
  5. Réponses: 3
    Dernier message: 11/02/2005, 12h20

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