Précédent   Forum des professionnels en informatique > Environnements de développement > Delphi > Composants
Composants Utilisation des différents composants Delphi
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 06/09/2010, 10h06   #1
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
Par défaut dessiner avec tchart sans trier

Salut Tout le monde,
j´ai un petit Souci avec TChart, j´aimerais dessiner une courbe mais dans l´ordre desordonné, je m´explique:

voici les données XY qui doivent etre dessiner:
XY = {(10, 20); (20, 15); (50, 25); (70, 15); (60, 10); (40,5)}

ce que va faire tchart c´est de les trier par ordre croissant, ensuite joindre point par point.
ce que j´aimerais c´est qu´il joint point par point mais dans cette ordre. sans avoir a les trier.

Merci d´avance de votre aide.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 13h06   #2
Membre chevronné
 
Avatar de popo
 
Inscription : mars 2005
Messages : 666
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 666
Points : 695
Points : 695
Je n'ai pas le souvenir que le TLineSerie trie les données.
D'où viennent ces données , Ne serait-elle pas triées avant d'être envoyées vers le graphique ?
popo est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 13h54   #3
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
exact, les données sont d´abord triées par odre croissant de l´axe des X avant d´etre envoyées
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 13h57   #4
Modérateur
 
Avatar de Rayek
 
Homme
Développeur informatique
Inscription : mars 2005
Messages : 4 665
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2005
Messages : 4 665
Points : 6 077
Points : 6 077
Citation:
Envoyé par jeffray03 Voir le message
voici les données XY qui doivent etre dessiner:
XY = {(10, 20); (20, 15); (50, 25); (70, 15); (60, 10); (40,5)}
il n'y a rien d'anormal et il n'y a pas de problème d'ordre.

(40,5) sera toujours avant (50,25) et après (20,15) en utilisant un système orthonormé (X, Y).
__________________
Modérateur Delphi Combattez la brute
Aucune réponse aux sollicitations techniques par MP

Le guide du bon forumeur :__________
[Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3
Rayek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 13h57   #5
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
et ces données sont les données donc moi je vais dessiner sans qu´elles ne soient triées. dont etre capable d´aller au point des Coordonnées (70, 15) avant de revenir a (60, 20) par exemple.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 14h00   #6
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
Rayek c´est la mon probleme. je veux pouvoir avoir des courbes selon mon model de données et l´ordre choisi par moi meme sans trie.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 14h36   #7
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
il ya peutre une possibilité avec canvas.lineto et moveto, mais je ne sais pas comment l´appliquer et y mettre des graduations sur les Axes.

Merci
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 14h40   #8
Modérateur
 
Avatar de Rayek
 
Homme
Développeur informatique
Inscription : mars 2005
Messages : 4 665
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2005
Messages : 4 665
Points : 6 077
Points : 6 077
Pour cela il va falloir que tu "sacrifies" l'axe des X sinon ce que tu veux faire est impossible.

ca va devenir

XY = {(1, 20); (2, 15); (3, 25); (4, 15); (5, 10); (6,5)}

La, ca sera dans l'ordre que tu veux mais la véracité des données ne sera plus la bonne.
__________________
Modérateur Delphi Combattez la brute
Aucune réponse aux sollicitations techniques par MP

Le guide du bon forumeur :__________
[Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3
Rayek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 15h03   #9
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
le probleme est que je ne peux pas le sacrifier pour la raison que tu viens juste d´evoquer, les données ne seront plus les memes. et la tout les calculs seront faussés. je veux pouvoir maintenir mes données tels quelles sont. et dessiner une courbe sous forme de Zig-zag, correspondant a mes données et dans cet ordre la.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 15h34   #10
Modérateur
 
Avatar de Rayek
 
Homme
Développeur informatique
Inscription : mars 2005
Messages : 4 665
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2005
Messages : 4 665
Points : 6 077
Points : 6 077
Je pense que ce n'est pas un TChart qu'il te faut mais plus un TPaintBox qui te permettrais de gérer comme tu le souhaites les lignes entre les points.
Le seul "hic" sera qu'il te faudra dessiner les axes par toi même.
__________________
Modérateur Delphi Combattez la brute
Aucune réponse aux sollicitations techniques par MP

Le guide du bon forumeur :__________
[Projet en cours] Des unités pour faciliter l'utilisation d'indy : EasyIndy 1.3
Rayek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 16h00   #11
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
c´est la reponse que je redoutais le plus. je ne suis pas sortie d´affaire donc.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 17h13   #12
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
voici a quoi j´aimerais aboutir:

voir piece attachée.
Images attachées
Type de fichier : gif test1.GIF (3,9 Ko, 9 affichages)
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 18h00   #13
Membre Expert
 
Inscription : août 2002
Messages : 1 001
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : août 2002
Messages : 1 001
Points : 1 277
Points : 1 277
Tu peux y arriver avec une liste de points (TPointSeries). Puis en traçant les lignes les reliant dans le BeforeDrawSeries

Il faut utiliser ta liste de points de départ, car le Chart les trie. (XValues et YValues ne respectent pas l'ordre d'insertion).

Exemple
Code :
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
 
type
  TForm1 = class(TForm)
    Chart1: TChart;
    Series1: TPointSeries;
    procedure FormCreate(Sender: TObject);
    procedure Chart1BeforeDrawSeries(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;
 
implementation
// Tableau de points
const
  cstTab: array[0..5] of array[0..1] of integer = ((10, 20),(20, 15),(50, 25),(70, 15),(60, 10),(40,5));
 
 
procedure TForm1.FormCreate(Sender: TObject);
var
  i:Integer;
begin
// remplissage
  for i:=0 to High(cstTab) do
    Series1.AddXY(cstTab[i][0],cstTab[i][1]);
end;
 
procedure TForm1.Chart1BeforeDrawSeries(Sender: TObject);
var
  i:Integer;
begin
// Tracé des lignes reliant les points
  for i:=1 to Series1.XValues.Count-1 do begin
    Chart1.Canvas.MoveTo(Series1.CalcXPosValue(cstTab[i-1][0]),Series1.CalcYPosValue(cstTab[i-1][1]));
    Chart1.Canvas.LineTo(Series1.CalcXPosValue(cstTab[i][0]),Series1.CalcYPosValue(cstTab[i][1]));
  end;
end;
__________________
Delphi 7
Windows XP/Vista
Linkin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/09/2010, 18h21   #14
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
Merci Linkin j´essaie tout de suite et je te donne le resultat.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2010, 15h38   #15
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
Merci Linkin, j´ai essayé et cela marche a merveille avec TPOINTSERIES, ce qui est un peu dommage pour moi, mais je vais m´y faire.
Grand Merci encore a tout le monde
Eric
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2010, 14h00   #16
Membre régulier
 
Développeur informatique
Inscription : juillet 2008
Messages : 166
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juillet 2008
Messages : 166
Points : 75
Points : 75
Envoyer un message via Yahoo à jeffray03
je rectifie, ce n´etait pas la reponse, apres des recherches, j´ai trouvé la propriété qui faisait probleme, c´etait et c´etait tout.
jeffray03 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 18h06.


 
 
 
 
Partenaires

Hébergement Web