![]() |
Säulendiagramm
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,
ich möchte in Delphi ein Säulendiagramm darstellen und zwar in der Form, wie es im angehängten jpg dargestellt wird. Kann mir da jemand weiterhelfen. Ich hatte die Komponente TChart im Auge, leider finde ich in Delphi keine Hilfe dazu. Ansonsten hätte ich noch die SDL Component Suite installiert. Gruß Sebastian |
Re: Säulendiagramm
Hast Du wirklich in der Delphi-Hilfe nach TChart gesucht?
Ich bekomm da nämlich sehr wohl einen Hilfetext angezeigt. Und das schon in D7. |
Re: Säulendiagramm
Also ich gehe über Hilfe-->BorlandHilfe-->Suchen nach: TChart,
und er findet nichts?! |
Re: Säulendiagramm
Dann drück mal in Delphi die <F1> oder <STRG><F1>
Oder tipp im CodeEditor TChart ein, setz den Cursor darauf und drück dann F1. Was für eine Delphi-Version hast Du eigentlich? |
Re: Säulendiagramm
Klappt auch nicht, viell installiere ich Delphi mal neu.
Ich habe Delphi 2006 Developper Studio Enterprise Gruß Sebastian |
Re: Säulendiagramm
Zitat:
Und installier dann auch gleich das Windows neu :-( Hört doch auf, immer gleich mit dem Holzhammer loszuklopfen. Das bringt alles nix ausser Frustration. Mach dich auf die Suche nach einem Tutorial für TChart oder TeeChart. Bemühe hierzu google oder die Suche im Forum. |
Re: Säulendiagramm
S2000: Wird denn überhaupt etwas in der Hilfe angezeigt?
Such vielleicht mal nach Chart und nicht nach TChart... oder Diagramm. Eine Neuinstallation ist hier definitiv nicht angezeigt. Sherlock |
Re: Säulendiagramm
Ja, die Hilfe zeigt etwas an. Zur TChart wird
halt nur nichts angezeigt :-( Ich werde mal nach nem Tutorial googeln. Gruß Sebastian |
Re: Säulendiagramm
Hallo Sebastian,
wenn TChart zum Lieferumfang deiner Delphi-Version gehört, dann befindet sich auch eine Hilfedatei dazu im Unterordner HELP. Ansonsten ist es recht einfach sich die online-Help beim Hersteller zu besorgen: ![]() Freundliche Grüße |
Re: Säulendiagramm
Habe mir die Hilfe jetzt heruntergeladen.. weiß auch nicht
warum die nicht installiert war.. Leider ist dort mein Fall nicht beschrieben. Ich benötige ja ein Balkendiagramm, abhängig von 3 Größen und d.h. auch 3 Achsen (XYZ). |
Re: Säulendiagramm
Wenn du deiner Chart-Komponente mehrere Balken-Serien hinzufügst, dann musst du deren Eigenschaft MultiBar auf mbNone setzen, damit du die gewünschte Darstellung erhältst.
Im Chart-Editor wechsle von Diagramm auf Reihen und betrachte die RadioGroup "Mehrfach-Balken". |
Re: Säulendiagramm
Danke, der Tip war gut!
Jetzt bleibt nur noch ein Problem. Wie kann ich jetzt die "Y-Achse" beschriften so das ich wie auf dem Bild zu sehen 3 Beschriftungen habe. (siehe erster Beitrag) Gruß Sebastian |
Re: Säulendiagramm
Die Y-Achse ist die am linken Rand (Chart.VertAxis). Bei dir hat sie ein Increment (Steigung) von 5 und wahrscheinlich sogar eine automatische Skalierung.
Was genau willst du verändern? |
Re: Säulendiagramm
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe mal ein Bild zur Verdeutlichung eingefügt. Oben der derzeitige Zustand, unten so wie ich es benötige. Ich brauche im Prinzip eine zusätzliche Achseninformation. Gruß Sebastian |
Re: Säulendiagramm
Du könntest die Achsenbeschriftung für die DepthAxis auf Text umstellen und in der Methode OnGetAxisLabel den gewünschten String übergeben.
|
Re: Säulendiagramm
Hallo,
könntest du das noch etwas konkretisieren?
Delphi-Quellcode:
chart1.DepthAxis. ? : = ?
|
Re: Säulendiagramm
Klar.
Du setzt DepthAxis.LabelStyle auf talText und stellst einen event handler für OnGetAxisLabel bereit:
Delphi-Quellcode:
procedure TDemoForm.DemoChartGetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin if Sender = TChartAxis(DemoChart.DepthAxis) then case ValueIndex of 0: LabelText := 'Serie 1'; 1: LabelText := 'Serie 2'; 2: LabelText := 'Serie 3'; else LabelText := '???'; end; end; |
Re: Säulendiagramm
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank schonmal!
Habe das jetzt wie folgt programmiert:
Delphi-Quellcode:
Die Ausgabe sieht dann aus wie im BIld zu sehen. Also ohne
implementation
{$R *.dfm} procedure TForm14.Chart1GetAxisLabel(Sender: TChartAxis; Series: TChartSeries; ValueIndex: Integer; var LabelText: string); begin if Sender = TChartAxis(Chart1.DepthAxis) then case ValueIndex of 0: LabelText := 'Serie 1'; 1: LabelText := 'Serie 2'; 2: LabelText := 'Serie 3'; else LabelText := '???'; end; end; procedure TForm14.FormCreate(Sender: TObject); begin chart1.DepthAxis.LabelStyle:=taltext; chart1.Series[0].Add(10,'1',clred); chart1.Series[1].Add(20,'2',clblue); chart1.Series[2].Add(20,'3',clgreen); end; die gewünschten Beschriftungen. Habe ich etwas vergessen? |
Re: Säulendiagramm
Guten Morgen,
ok es hat jetzt funktioniert. Ich hatte vergessen die Depth Axis auf sichtbar zu schalten. Gruß Sebastian |
Re: Säulendiagramm
Moin,
du hast die Achsenbeschriftung noch nicht sichtbar gemacht:
Delphi-Quellcode:
Bei deinem Beispiel wird deutlich, dass die kleinen Werte im Hintergrund mit der orthogonalen Darstellung schlecht sichtbar sind. Im Chart-Editor kannst du auf der 3D-Seite des Diagramms diese Eigenschaft abschalten und mit den Reglern für Drehung und Erhöhung spielen.
procedure TForm14.FormCreate(Sender: TObject);
begin with Chart1 do begin DepthAxis.LabelStyle := talText; // besser im Chart-Editor DepthAxis.Visible := True; // besser im Chart-Editor Series[0].Add(10, '1', clred); Series[1].Add(20, '2', clblue); Series[2].Add(20, '3', clgreen); end; end; Wenn du mal nicht weißt, wie du eine Einstellung im Chart-Editor auch in deinem Code vornehmen kannst oder wenn dich die Intuition mal verlässt: Alle Änderungen gegenüber den Standardeinstellungen werden im Object Inspector durch BoldText hervorgehoben. Zusätzlich kannst du einen charakteristischen Zahlenwert im Chart-Editor einstellen und diesen in der Textdarstellung deiner Form suchen. Freundliche Grüße |
Re: Säulendiagramm
Super, das hat soweit funktioniert!
Hat schonmal jemand realisiert, den Chart zur Laufzeit zu drehen? Gruß Sebastian |
Re: Säulendiagramm
(falls das mal jemand sucht)
Ich habe die Rotation des Chart folgendermaßen gemacht:
Delphi-Quellcode:
procedure TForm14.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer); begin chart1.View3DOptions.Rotation:=scrollbar1.position; end; procedure TForm14.ScrollBar2Scroll(Sender: TObject; ScrollCode: TScrollCode; var ScrollPos: Integer); begin chart1.View3DOptions.Elevation:=scrollbar2.Position; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz