![]() |
TAdvChart Probleme
Hallo,
da ich mit den Teechart Probleme hatte, mehrere Achsen sauber darzustellen, habe ich mich entschlossen, vom TMS die TAdvChart zu kaufen. Leider komme ich da nicht so richtig in Gang, weil es offensichtlich tausende an Einstellungen gibt. TMS hatte ich heute nochmal angeschrieben, dass manche Demos nicht richtig gehen, aber ich wollte am Wochenende noch etwas "vollbringen". Hat jemand von Euch Erfahrungen mit der Komponente?
Delphi-Quellcode:
Meine Daten liegen in einem Array, wie im Text oben beschrieben.
var
i: integer; d: TDateTime; c: Integer; begin ar[0].time := 0; ar[0].v := 100; ar[1].time := 4; ar[1].v := 200; ar[2].time := 8; ar[2].v := 300; ar[3].time := 12; ar[3].v := 400; ar[4].time := 16; ar[4].v := 500; ar[5].time := 20; ar[5].v := 600; ar[6].time := 24; ar[6].v := 700; ar[7].time := 28; ar[7].v := 800; ar[8].time := 32; ar[8].v := 900; ar[9].time := 36; ar[9].v := 1000; ar[10].time := 40; ar[10].v := 1100; with AdvGDIPChartView1.Panes[0] do begin XAxis.UnitType := utMilliSecond; XAxis.Size := 130; Title.Text := 'May 2010'; Title.Size := 50; Title.Font.Size := 16; Range.StartDate := EncodeTime(0, 0, 0, 0); with Series[0] do begin AutoRange := arEnabled; ChartType := ctLine; XAxis.MajorUnitTimeFormat := 's,zzz'; XAxis.TextBottom.Angle := 50; XAxis.AutoUnits := true; for I := 0 to 10 do begin AddSingleXYPoint(ar[i].time, ar[i].v); end; end; Range.RangeTo := 20; //das ist Max Wert für X Achse end; Als Zeitachse kommt immer ein Wert in ms, welches unterschiedlich sein kann. Oben beispielsweise jeweils 4ms. Dann noch der Wert. Im Chart sieht es dann immer so aus, als wenn immer alle 1ms Werte eingetragen wurden. OK, sehr speziell, aber vielleicht hat doch der ein oder andere weitere Infos. |
AW: TAdvChart Probleme
Hallo,
ich denke, Du hast ja schon einen Tipp von TMS, aber vielleicht als Ergänzung Wenn es Dir um das Zeichnen der X-Achse und individueller Beschriftung geht, kannst Du Dir eine procedure anlegen: procedure XAxisDrawValue(Sender: TObject; Serie: TChartSerie; Canvas: TCanvas; ARect: TRect; ValueIndex, XMarker: integer; Top: Boolean; var defaultdraw: Boolean); und diese dann Deiner Serie zuweisen: Panes[0].Series[0].OnXAxisDrawValue := frmUmsatz.XAxisDrawValue; damit ist dann auch ein individuelles Vorgehen möglich. Und Du hast Recht, diese Demos funktionieren nicht oder nicht mehr. Viele Grüße Michael Bickel |
AW: TAdvChart Probleme
Zitat:
Ich bin schon ein wenig weiter. In einer Testumgebung geht es nun.
Delphi-Quellcode:
XAxis.UnitType := utMilliSecond;
XAxis.Size := 130; Range.StartDate := trunc(Date); with Series[0] do begin AutoRange := arEnabled; ChartType := ctXYLine; //ctXYLine ist wichtig für Datum/Zeitfunktionen XAxis.MajorUnitTimeFormat := 's,zzz'; XAxis.TextBottom.Angle := 50; XAxis.MajorUnitSpacing := 20; XAxis.XYValuesOffset := 60; XAxis.AutoUnits := false; d := EncodeDate(2010, 05, 1) + I * 5; AddSingleXYPoint(0, 0, Date ); AddSingleXYPoint(0, 1, Date + EncodeTime(0, 0, 0, 4)); AddSingleXYPoint(0, 10, Date + EncodeTime(0, 0, 0, 8)); AddSingleXYPoint(0, 3, Date + EncodeTime(0, 0, 0, 12)); end; Range.RangeTo := 15; end; Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:40 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 by Thomas Breitkreuz