FAQ DelphiConsultez toutes les FAQ
Nombre d'auteurs : 124, nombre de questions : 934, dernière mise à jour : 23 octobre 2024 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).
Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.
L'équipe Delphi de Developpez.com.
- Comment travailler avec des graphes ?
- Comment tracer un graphe lors de sa création ?
- Comment tracer un graphe à l'aide de SourceData ?
- Comment tracer un graphe par formule ?
- Comment créer un graphe superposé ?
- Comment changer le type de graphe ?
- Comment modifier l'aspect d'une série ?
- Comment ajouter un titre au graphe ?
- Comment modifier les axes ?
Nous allons ici voir la création de graphe automatisé. Il y a deux objets 'graphique' dans Excel, la feuille graphique, de la collection Chart qui appartient à l'objet classeur, et le graphique incorporé de la collection ChartObjects qui appartient à la feuille. Ces deux objets se manipulent presque à l'identique.
Pour une feuille graphique :
Code delphi : | Sélectionner tout |
1 2 3 | Var MonGraph: _Chart; ... MonGraph:=MonClasseur.Sheets.Add(emptyparam,emptyparam,1,xlChart,0) as _chart; |
Code delphi : | Sélectionner tout |
1 2 3 4 5 | Var resultat:OleVariant; ... resultat:=monclasseur.Worksheets[1]; resultat.chartobjects.add[10,10,100,100]; resultat:=resultat.chartobjects[1].chart; |
Code delphi : | Sélectionner tout |
MonGraph.Location(xlLocationAsObject,MaFeuille.Name);
Cela est possible lorsqu'une plage de valeur numérique est sélectionnée lors de la création du graphique. Ce n'est pas toujours très bon, mais pour des histogrammes, cela marche plutôt bien.
Code delphi : | Sélectionner tout |
1 2 | MaFeuille.Range['A1','C20'].Select; MonGraph:=MonClasseur.Sheets.Add(emptyparam,emptyparam,1,xlChart,0) as _chart; |
Remarque : pour éviter de voir arriver des séries 'sauvages', il convient de s'assurer de la non sélection d'une plage avant de créer le graphique.
C'est de loin la méthode la plus simple. On définit la plage des valeurs, on crée le graphe puis on affecte la plage au graphe. Notez que dans ce cas la colonne la plus à gauche sera considérée comme la colonne des X.
Code delphi : | Sélectionner tout |
1 2 3 4 | rMaPlage:=MaFeuille.Range['A1','C20']; MonGraph:=MonClasseur.Sheets.Add(emptyparam,emptyparam,1,xlChart,0) as _chart; MonGraph.ChartType:=xlXYScatter; MonGraph.SetSourceData(rMaPlage,xlColumns); |
C'est la méthode la plus puissante, mais elle demande de la vigilance. Elle consiste à définir directement la formule qui définit la série.
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Var MonClasseur : _workbook; MaFeuille :_Worksheet; MonGraph : _Chart; rMaPlage : ExcelRange; MaSerie : Series; MaCollSerie : SeriesCollection; compteur:integer; ... begin ExcelApplication1.Connect; MonClasseur:=ExcelApplication1.Workbooks.Open('c:\tutoriel\tuto.xls',False,False, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0); ExcelApplication1.Visible[0]:=true; MaFeuille:=MonClasseur.Worksheets[1] as _worksheet; rMaPlage:=MaFeuille.Range['A1','C20']; MonGraph:=MonClasseur.Sheets.Add(emptyparam,emptyparam,1,xlChart,0) as _chart; MonGraph.ChartType:=xlXYScatter; MaCollSerie:=MonGraph.SeriesCollection(EmptyParam,0) as SeriesCollection; MaSerie:=MaCollSerie.NewSeries; MaSerie.FormulaLocal:='=SERIE(;Feuil1!$A$2:$A$21;Feuil1!$B$2:$B$21;1)'; end; |
Code delphi : | Sélectionner tout |
1 2 3 | MaSerie.FormulaLocal:='=SERIE(;'+MaFeuille.Range['A1', MaFeuille.Range['A1',EmptyParam].End_[xlDown]].Address[true,true,xlA1,True,false] +';Feuil1!$B$2:$B$21;1)'; |
Pour créer un graphique superposé :
Code delphi : | Sélectionner tout |
1 2 3 4 5 6 7 | MonGraph:=MonClasseur.Sheets.Add(emptyparam, emptyparam, 1, xlChart ,0) as _chart; MonGraph.ChartType := xlXYScatter; MonGraph.SetSourceData(rMaPlage,xlColumns); MaSerie:=MonGraph.SeriesCollection(1,0) as series; MaSerie.ChartType:=xlColumnClustered; MaSerie:=MonGraph.SeriesCollection(2,0) as series; MaSerie.AxisGroup:=xlSecondary; |
Pour changer le type de graphe :
Code delphi : | Sélectionner tout |
1 2 3 4 | MonGraph:=MonClasseur.Sheets.Add(emptyparam,emptyparam,1,xlChart,0) as _chart; MonGraph.ChartType:=xlXYScatter; MonGraph.SetSourceData(rMaPlage,xlColumns); MonGraph.ChartType:=xlLineMarkers; |
Pour modifier l'aspect d'une série :
Code delphi : | Sélectionner tout |
1 2 3 4 | MaSerie:=MonGraph.SeriesCollection(1,0) as Series; MaSerie.Border.ColorIndex:=3; MaSerie.MarkerBackgroundColor:=5; MaSerie.Smooth:=true; |
Pour ajouter un titre :
Code delphi : | Sélectionner tout |
1 2 | MonGraph.HasTitle[0]:=True; MonGraph.ChartTitle[0].Caption:='Mon Titre'; |
Code delphi : | Sélectionner tout |
1 2 3 | MonGraph.HasTitle[0]:=True; MaFeuille.Cells.Item[1,7].Name:='Titre'; MonGraph.ChartTitle[0].Caption := '='+MonClasseur.Name +'!Titre'; |
Pour modifier les axes :
Code delphi : | Sélectionner tout |
1 2 3 4 | MonAxe:=MonGraph.Axes(xlValue,xlPrimary,0) as Axis; MonAxe.HasTitle:=true; MonAxe.MinimumScale:=20; MonAxe.AxisTitle.Caption:='ordonnées'; |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.