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

 Delphi Discussion :

Fonctionnement des TChart


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Fonctionnement des TChart
    Bonjour a tous ,

    Voila, je me dirige vers vous car je suis bloquer et j'ai une application a terminer pour la fin de la semaine :s

    J'aurai vraiment besoin d'un tuyau sur les graphique (Tchart). J'ai généré automatiquement un graphique via interface graphique sur Delphi 7 de Borland. Ce graphique d'air reçoit du programme une nouvelle valeur toute les seconde (mettons un integer i ) a faire varier sur l'axe des y (avec le temps, graduée en seconde sur l'axe des X)
    Mon but est d'arriver a ce que les donnée du graphe se déplace vers la gauche, une sorte de mise a jour dynamique en somme.Donc chaque seconde une donnée de l'extrême gauche disparait et tout se décale pour laisser la place a la nouvelle donnée a l'extrême droite. Mais je ne sais pas si c'est ma Série ou mon Tchart que je doit modifier et par quelle fonction y arriver (ni comment indiquer au programme de procéder a l'ajout toute les secondes)

    J'ai éplucher l'aide, mais j'ai un peu de mal a trouver ce qui me conviendrai. Ça me ferai vraiment super plaisir et ça me ferai avancer un grand coup si quelqu'un savais juste me tuyauter sur comment atteindre cet objectif ou quelque commande clés et leur utilisation.

    Merci beaucoup d'avance Bonne soirée a tous en tout cas.

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //cadencement par un timer avec 'interval' = 1000
    Procedure Timer1Timer(Sender: TObject);
    begin
      // suppression du point le plus ancien
      if (Serie1.Count >= NombreMaxDePointsAAfficher then Serie1.Delete(0);
      // ajout d'un point
      Serie1.AddXY(ValeurX, ValeurY,'Label facultatif',couleur facultative);
    end;
    Pour avoir un effet de défilement ne pas oublier de mettre la propriété 'chart.BottomAxis.Automatic' à true!

    à+

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Je teste ça tout de suite

    Merci beaucoup !!

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    EDIT :

    Voila, j'ai tester le morceau de code. J'ai du le modifier pour arriver a quelque chose qui se raproche de mon objectif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    interface
     
    Function Timer1Timer(Series1 : TAreaSeries):TAreaSeries;
    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
     
    implementation
     
    //cadencement par un timer avec 'interval' = 1000
    Function TForm1.Timer1Timer(Series1 : TAreaSeries):TAreaSeries;
    var i : integer;
    var j : integer;
     
    begin
      i:=1;
      j:=4;
      // suppression du point le plus ancien
      if Series1.Count >= 25 then Series1.Delete(0);
      // ajout d'un point
      Series1.AddXY(i, j,'',clRed);
      i:= i+1;
      j:= j+1;
    end;
    puis plus tard, pour tester, je doit appuyer sur un bouton pour ajouter des XY (donc dans mon 1click : )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Series1:= Timer1Timer(Series1);
    Le programme se lance, tableau vide. Je clique une fois sur le bouton, il m'ajoute un point (en (1,4)) comme prévu par ma fonction. Mais, lors du deuxième clique sur le bouton (pour ajouter un nouveau point qui devrai être en (2,5), le message suivant s'affiche :
    Project Project.exe raised exception class EAccessViolation with message 'Access violation at address 0046A994 in module 'Project.exe'. Read of address FF011A36. Process stopped. Use Step or run to continue
    Quelqu'un sais d'ou ca peut venir ?
    Merchi d'avance

Discussions similaires

  1. Fonctionnement des comparateurs de prix ?
    Par masseur dans le forum Services
    Réponses: 3
    Dernier message: 22/01/2006, 21h11
  2. Fonctionnement des attributions de droits sur table et bdd ?
    Par shako95 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/11/2005, 13h39
  3. Fonctionnement des WeakHashMap
    Par seiryujay dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 03/10/2005, 14h12
  4. Fonctionnement des fichiers.
    Par phoenix440 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 29/05/2005, 15h36
  5. [langage] fonctionnement des Processus
    Par GMI3 dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 11h12

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