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 :

diagramme en batons [FAQ]


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2005
    Messages
    315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 315
    Par défaut diagramme en batons
    Quelqu'un sait comment faire un diagramme en batons.
    j'ai cru voir que l'on pouvait le faire avec la fonction TCHAR ou encore en utilisant les propriétré moveTo ou LineTo

  2. #2
    Membre Expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Par défaut
    Regarde dans l'onglet Exemples (ou Samples) de la palette de composants. Il y a un composant adapté pour ça normalement.

    Sinon, oui, tu peux le faire à la main. Il suffit de savoir dessiner des rectangles (voir Canvas.FillRect).

    @++

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Salut,

    Sur ta fiche, tu mets un TPaintBox, et dans son évènement OnPaint, tu places le code qui dessine ton diagramme :
    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
     
    procedure TForm1.PaintBox1Paint(Sender: TObject);
    var Largeur,Hauteur:integer; 
    begin
    //Le code qui dessine ton diagramme se trouve ici.
    //Le dessin s'effectue sur le Canvas de la PaintBox
     
    //Il peut être utile de récupérer la Hauteur et la Largeur de la PaintBox :
       Largeur:=PaintBox1.ClientWidth;
       Hauteur:=PaintBox1.ClientWidth;
     
    //Suivent ici, quelques méthodes de TCanvas qui te permettront de
    //dessiner un histogramme.
       //Si tu as besoin de tracer des axes :   
       PaintBox1.Canvas.MoveTo(...); //déplace le crayon
       PaintBox1.Canvas.LineTo(...); //dessine un trait
     
       //Si tu as besoin d'écrire des choses (légendes, étiquettes, etc) :
       PaintBox1.Canvas.TextOut(...);
             //Pour mesurer un texte avant de le dessiner (pour le placer 
             //correctement), tu as  à ta disposition
             //TCanvas.TextWidth(...) et TCanvas.TextHeight(...)
     
       //Pour changer les couleurs de Dessin
       PaintBox1.Canvas.Brush.Color:=clRed; //change la couleur de la brosse
       PaintBox1.Canvas.Pen.Color:=clBlue; //change la couleur du crayon
     
       //Pour dessiner des rectangles
       PaintBox1.Canvas.FrameRect(...);//dessine le cadre d'un rectangle non rempli (Couleur du trait=couleur de la brosse en cours)
       PaintBox1.Canvas.Rectangle(...);//dessine un rectangle plein avec une 
    bordure (Couleur du Trait=Crayon; Remplissage=Brosse)
       PaintBox1.Canvas.FillRect(...); //Remplie une zone rectangulaire (Couleur=celle de la brosse)
    end;
    En regardant un peut l'aide Delphi et les exemples qui y sont présentés, du coté de TCanvas et TPaintBox, tu devrais t'en sortir.

    Après, c'est juste une question d'algorithme qui transforme tes données en dessin.

    Une fois que tu auras réussi à dessiner ce que tu veux dans ta PaintBox, il ne te sera pas trop difficile de dessiner ton graphique dans un TBitmap (en dessinant dans son canvas, comme pour la PaintBox).
    Ceci aura de multiples avantages :
    - C'est toi qui choisi la taille de ta surface de dessin :
    initialisation de TonBitmap.Width et TonBitmap.Height
    - tu pourras sauver ton graphique dans un fichier .bmp (TonBitmap.SaveToFile()
    - tu pourras toujours afficher ton copier ton bitmap dans ton TPaintBox (avec TPaintBox.Canvas.StretchDraw(..) ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.PaintBox1Paint(Sender: TObject);
    begin
      PaintBox1.Canvas.StretchDraw(PaintBox1.ClientRect,TonBitmap);
    end;
    - Ou tu pourras l'imprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    uses Printer;
    ...
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      withPrinter do
      begin
         BeginDoc;
         Canvas.StretchDraw(Rect(0,0,PageWidth,PageHeight),TonBitmap);
         EndDoc;
      end;  
    end;

    Bref, une fois que tu auras compris cette histoire de propriété Canvas que tu trouve un peu partout dans les "objets" Delphi et qui te permet de dessiner ce que tu veux, un monde nouveau s'ouvrira à toi

    Bon dev

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

Discussions similaires

  1. diagramme en baton et python
    Par koreimy dans le forum Général Python
    Réponses: 5
    Dernier message: 18/09/2013, 15h11
  2. Diagramme en baton tout bete
    Par fuyo2004 dans le forum MATLAB
    Réponses: 7
    Dernier message: 10/06/2009, 13h22
  3. [Débutant] Diagramme en batons
    Par fabrice91 dans le forum R
    Réponses: 3
    Dernier message: 28/05/2009, 12h14
  4. [Débutant][uml][pdf]Exporter un diagramme Omondo en pdf ?
    Par folsen dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 05/07/2004, 16h40
  5. [CR] Les diagrammes n'apparaissent pas !
    Par pvil dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 16/08/2002, 08h53

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