Moin, Moin,
ich habe ein (Balken)Chart, bei dem die X-Achse per Source DateTimeIntervalChartSource, Style smsLabel festgelegt ist.
Als Steps sind dtsDay, dtsMonth und dtsYear True.
Wo kann ich einstellen, dass der Tag in der X-Achse immer angezeigt wird. Bei bestimmten Auflösungen (beispielsweise 3 Werte = 3 Balken) wird die Beschriftung der X-Achse nicht dargestellt. Nehme ich aber dtsHour dazu, dann wird die Beschriftung angezeigt, allerdings mit Uhrzeit, welche ich aber gar nicht brauche/will, denn der Wert der dargestellt wird ist der Tageswert. Auch scheint die Darstellung in Abhängigkeit der Größe des Chart's (Fenster) zu sein. Mein Chart ist per default Height/Width 687/805 groß. Es ist aber an das Fenster gekoppelt und kann somit theoretisch über mehrere Bildschirme breit werden. In der default-Größe wird die X-Achse ab 6 Werten (=6Tage) angezeigt. Ziehe ich das Fenster (Chart) breiter, sind irgendwann die Tage weg.
Ein anderes Chart (Linien) ebenfalls mit X-Achse mit Source DateTimeIntervalChartSource, Style smsLabel, hat zu den Datumsangaben wie oben auch Stunde, Minute und Sekunde auf True. Kann ich irgendwo festlegen, dass z.B. das Datum immer und auch unterhalb der Zeit angezeigt wird?
eingesetzte Versionen
Windws: Lazarus 0.9.31 SVN 33083, FPC 2.5.1
Linux: Lazarus 0.9.31 Source vom 27.11.2011, FPC 2.4.4
TChart - DateTime auf X-Achse - Einstellungsfrage(n)
Re: TChart - DateTime auf X-Achse - Einstellungsfrage(n)
Verwende das Property TDateTimeChartSource.DateTimeFormat um die Formatierung der Marks festzulegen. Es gelten die Formatcodes entsprechend der Standardfunktion FormatDateTime.
Die Positionierung der Marks ist m.E. immer noch nicht gut gelöst. Versuche mal, mit den Intervals der Achse herumzuspielen. Vielleicht ergibt sich dann das von dir gewünschte Verhalten. Falls alle Stricke reißen: stelle deine Frage im offiziellen Lazarus-Forum (http://www.lazarus.freepascal.org/index ... tion=forum" onclick="window.open(this.href);return false;), der Autor der Komponente ist sehr kooperativ und findet meist eine überraschende und einfache Lösung, bzw. stellt ein paar Tage später eine Korrektur vor.
Die Positionierung der Marks ist m.E. immer noch nicht gut gelöst. Versuche mal, mit den Intervals der Achse herumzuspielen. Vielleicht ergibt sich dann das von dir gewünschte Verhalten. Falls alle Stricke reißen: stelle deine Frage im offiziellen Lazarus-Forum (http://www.lazarus.freepascal.org/index ... tion=forum" onclick="window.open(this.href);return false;), der Autor der Komponente ist sehr kooperativ und findet meist eine überraschende und einfache Lösung, bzw. stellt ein paar Tage später eine Korrektur vor.
-
- Beiträge: 90
- Registriert: Fr 2. Nov 2007, 13:32
- OS, Lazarus, FPC: Win (L 1.0 FPC 2.6.0)
- CPU-Target: 32Bit
- Wohnort: Ulm
Re: TChart - DateTime auf X-Achse - Einstellungsfrage(n)
Probier mal mit dem Ereignis Chart1.AxisList.BottomAxis.OnMarkToText die Anzeige entsprechend anzupassen.
Wenn das nicht hilft, kann ich auch nur auf das hilfreiche Feedback vom Autor der Komponente verweisen
Wenn das nicht hilft, kann ich auch nur auf das hilfreiche Feedback vom Autor der Komponente verweisen
Re: TChart - DateTime auf X-Achse - Einstellungsfrage(n)
Danke für die Hinweise.
Ich werde wohl dem Vorschlag von wp_xyz folgen und im engl. Forum nachfragen.
Das Beschriftung kann ich dadurch nun besser/genauer festlegen.wp_xyz hat geschrieben:Verwende das Property TDateTimeChartSource.DateTimeFormat um die Formatierung der Marks festzulegen. Es gelten die Formatcodes entsprechend der Standardfunktion FormatDateTime.

An den Intervallen hatte ich mich schon einige Stunden versucht, allerdings nicht mit dem von mir gewünschtem Ergebnis.wp_xyz hat geschrieben:Die Positionierung der Marks ist m.E. immer noch nicht gut gelöst. Versuche mal, mit den Intervals der Achse herumzuspielen. Vielleicht ergibt sich dann das von dir gewünschte Verhalten.
Mir erschliesst sich dieses Ereignis nicht ganz. AText ist soweit klar. Aber was bewirkt AMark? Egal was ich da einstelle, ich bekomme immer:Thomas B. hat geschrieben:Probier mal mit dem Ereignis Chart1.AxisList.BottomAxis.OnMarkToText die Anzeige entsprechend anzupassen.
Code: Alles auswählen
unit1.pas(169,64) Hint: Value parameter "AMark" is assigned but never used
-
- Beiträge: 90
- Registriert: Fr 2. Nov 2007, 13:32
- OS, Lazarus, FPC: Win (L 1.0 FPC 2.6.0)
- CPU-Target: 32Bit
- Wohnort: Ulm
Re: TChart - DateTime auf X-Achse - Einstellungsfrage(n)
OK, etwas ausführlicher:
AMark ist der Wert vom Achsen-Strich, der beliebig (um)benannt werden kann. Ausgabe geht dann über AText.
Hier ein Beispiel wie ich es mal verwendet habe:
AMark ist der Wert vom Achsen-Strich, der beliebig (um)benannt werden kann. Ausgabe geht dann über AText.
Hier ein Beispiel wie ich es mal verwendet habe:
Code: Alles auswählen
uses DateUtils;
...
procedure TForm2.Chart1AxisList1MarkToText(var AText: AnsiString; AMark: Double);
var AHour,AMinute,ASecond,AMilliSecond: Word;
begin
DecodeTime(AMark,AHour,AMinute,ASecond,AMilliSecond);
If ASecond = 0 then
AText := FormatDateTime('dd.mm. hh:mm',AMark)
else
AText := FormatDateTime('hh:mm:ss',AMark);
end;
Re: TChart - DateTime auf X-Achse - Einstellungsfrage(n)
Vielen Dank!
Wieder etwas gelernt.
Wieder etwas gelernt.
