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 :

Changer l'ordre des séries d'un TChart


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut Changer l'ordre des séries d'un TChart
    Tout est dans le titre!

    je crée dynamiquement un nombre plus ou moins grand de séries dans un TChart.
    Bien entendu est apparaissent en 'surimpression' des séries déjà présentent sur le dit TChart.
    Je souhaiterais pouvoir remettre certaines séries "d'origine" au 1er plan afin que le tracé en redevienne visible.
    Ces changements ne peuvent que se faire par programme et non par le GUI puisque les séries qui occultent certaines autres sont créées dynamiquement.

    Merci pour vos réponses.

    JPM

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    A priori pas de réponses!
    en attendant e contourne le problème en créant ma série que je souhaite voir 'au dernier moment' afin qu'elle soit localisée au dessus des autres. Cela obige seulement à stoker des valeurs dans des buffers puisque la série n'est pas disponible de suite et donc ne peut être remplie au préalable.

    Bien que fonctionnelle, cette solution n'est pas totalement satisfaisante et je suis toujours intéressé à des suggestions plus ciblées sur le sujet proposé.

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Voila: j'ai trouvé un moyen :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    const a_max=10;
    var TLS_ : array[0..a_max] of TFastLine;
     
    procedure put_above( n : integer); // mettre en avant plan avec une largeur de 3
    var tmp : TChartSeries; i,j : integer;
       begin
       tmp:=TLS_[n];
       if tmp <> Chart1.SeriesList.Last then
          begin     
          Chart1.ExchangeSeries(tmp,Chart1.SeriesList.Last);
          for i:= 0 to a_max do if TLS_[i] <> nil then
             begin
             if i=n then
                j:=3
             else
                j:=1;
             TLS_[i].Pen.Width:=j;
             end;
          end;
       end;
     
    procedure TCompare_Curves.TLS_a_Above(Sender: TChartSeries;
      ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
       begin
       with sender as TFastlineseries do
          Put_above(Tag); // mettre au dessus la série N° 'Tag'
       end;
     
    ......
    var a : integer;
    procedure Formcreate();
       begin
       a:=0;
          repeat
          if TLS_[a]=nil then
             begin
             TLS_[a]:= TFastLineSeries.Create(nil);
             TLS_[a].Tag:=a;
             TLS_[a].DrawAllPoints:=false;
             TLS_[a].OnClick:=TLS_a_Above; // pour mettre en évidence la série sur laquelle on a cliqué
             TLS_[a].ShowInLegend:=false;
             TLS_[a].XValues.Order:= loNone;
             TLS_[a].YValues.Order:= loNone;
             Chart1.AddSeries(TLS_[a]);
             end;
          TLS_[a].Clear();
          TLS_[a].Active:=false;
          inc(a);
          until a> max_a;
       end;

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

Discussions similaires

  1. Composant TChart: changer l'ordre des points
    Par roland34 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 25/04/2012, 18h24
  2. [Excel] Changer les valeurs des séries d'un graphe
    Par françois62 dans le forum ASP
    Réponses: 3
    Dernier message: 13/03/2007, 17h41
  3. [Thunderbird] changer l'ordre des comptes
    Par Eusebius dans le forum Thunderbird
    Réponses: 2
    Dernier message: 26/07/2006, 09h08
  4. Rajout colonne - changer l'ordre des colonnes ?
    Par Coptere dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 13/09/2005, 10h56
  5. changer l'ordre des dates dans table
    Par lordyan dans le forum Requêtes
    Réponses: 11
    Dernier message: 14/01/2005, 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