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 :

dessiner une courbe composant chart


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut dessiner une courbe composant chart
    salut,je cherche a dessiner une courbe qui represente les valeur d'un tableau. l'axe des x va contenir des valeur de 0 à 180 l'axe des y va contenir des valeurs de 2000 à 3000 avec un pas de 25.
    j'ai essayer de travailler avec le composant chart mais pas de resultats. merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    Salut,
    Perso j'utilise TeeChart donc je ne suis pas sur de pouvoir t'aider beaucoup mais un bout de code pour voir ce qui cloche permet d'avancer...

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    merci pour la reponse. mon problème est de dessiner une courbe avec n'importe quel composant. tu peux me donner votre methode. merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    A tu TeeChart d'installé? Si non, je ne peut pas t'aider...
    (TeeChart est payant sauf Démo)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 207
    Points : 188
    Points
    188
    Par défaut
    il me semble que le sujet a été abordé il y a pas longtemps.
    Je cherche et je met le lien

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 207
    Points : 188
    Points
    188
    Par défaut
    Tiens, trouvé en 1 minutes en tapant 'Courbe' dans la fonction <rechercher>
    http://www.developpez.net/forums/sho...d.php?t=112293




    En espérant que ça t'aides...

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    merci pour les reponses immediates.

  8. #8
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par tarekcom
    merci pour la reponse. mon problème est de dessiner une courbe avec n'importe quel composant. tu peux me donner votre methode. merci
    Pour tracer, une courbe (pour dessiner en fait), celà se réalise sur un TCanvas.

    Presque tous les composants visuels (descendants de TWinControl et TGraphicControl) possèdent un TCanvas.

    Certains composants non visuels, utilisés comme zones de dessin intermédiaires avant affichage possèdent également un TCanvas : c'est surtout le cas de TBitmap (dessin de pixels), mais aussi de TMetaFile (dessin vectoriel).

    Enfin, un composant existe tout spécialement pour faire ce que tu veux, c'est TPaintBox.

    Bref, tu peux très bien dessiner une courbe sur un TEdit (si, si) mais c'est plus dur à faire


    Snon, j'ai menti (honte à moi) pour certains composants visuels et pour le TMetaFile :
    Pour ce dernier, il faut créer le canvas qui permette de dessiner dessu, je ne m'étendrait pas sur le sujet, l'aide Delphi est assez bien documentée à ce propos).
    Et pour certains contrôles TWinControl (TPanel par exemple), le TCanvas est caché, ou pour d'autres (comme TImage), occulté par le TCanvas d'un TBitmap dont il est propriétaire.

    Dans ces cas-ci,
    - soit on accède a son TCanvas en rendant sa propriété Canvas publique lorsqu'elle existe et que c'est juste une propriété protected.
    - soit, dans l'alternative, on y accède par sa variable private qui s'appelle généralement FCanvas.
    - Soit, comme pour le TMetaFile, on crée un TCanvas exprès pour le contrôle sur lequel on souhaite dessiner. (voir dans l'aide Delphi TControlCanvas)

    Dans tous les cas, tout les Canvas se manipulent de la même façon, reste à savoir quand... c'est-à- dire à quel moment (dans quel évènement) le canvas est-il susceptible de recevoir des commandes de dessin.
    - Pour le TBitmap et le TMetaFile : c'est quand on veux, dans n'importe qu'elle partie de ton code.
    - Pour les composants visuels : c'est au moment où windows leur demande de se redessiner. Pour toi, la plupart du temps, celà correspond à l'évènement OnPaint, mais parfois (pour un Grid) dans un OnDrawCell (par exemple).

    Pour le TPaintBox, c'est dans le OnPaint.

    Pour forcer le dessin d'un composant visuel, à n'importe quel moment, tu effectue un Invalidate (lorsque l'utilisateur souhaite changer la couleur de ta courbe par exemple), qui déclenche derrière le code que tu as fourni dans le OnPaint.

    Après pour dessiner une courbe dans un TPaintBox,
    - tu connais la largeur (ClientWidth) et la hauteur (ClientHeight) de sa zone de dessin,
    - tu sais que le point à gauche de cette fenètre de visualisation est l'origine et que,
    donc tu peux avoir besoins de créer des routines pour effecuer un changement de repère.

    Enfin, TCanvas te propose un arsenal de procédures et fonctions pour tracer des segments de droites (LineTo), des rectangles, des polygones dessiner du texte, déplacer le crayon, choisir une couleur et un style de crayon (Pen), pareil pour le remplissage de formes (Brush), etc...
    Mieux, la propriété Handle de TCanvas, te permet d'utiliser toutes les fonctions graphiques de l'API Windows qui dispose de fonctionnalités graphiques encore plus poussées, dans ce même TCanvas. Par exemple des fonction de transformation de repère toutes faites, la possibilité de dessiner des flèches, etc...

    Pour commencer, il faut que tu potasses : TPaintBox,TPaintBox.OnPaint,TCanvas,TBitmap

    Bon dev
    Bidouilleuse Delphi

Discussions similaires

  1. dessiner une courbe à partir d'un tableau de valeur
    Par bob75018 dans le forum C++Builder
    Réponses: 8
    Dernier message: 15/06/2007, 04h29
  2. Dessiner une courbe f(x,y) dans CDialog
    Par cjacquel dans le forum MFC
    Réponses: 3
    Dernier message: 21/12/2006, 17h42
  3. [JGraph]dessiner une courbe à partir de données
    Par marwaza22 dans le forum 2D
    Réponses: 1
    Dernier message: 16/11/2006, 16h16
  4. dessiner une courbe avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 9
    Dernier message: 28/09/2006, 22h05
  5. dessiner une courbe
    Par rimacom dans le forum Débuter
    Réponses: 5
    Dernier message: 10/05/2006, 11h08

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