Hallo,
Ich möchte auf der x-Achse ein ganzes Jahr darstellen, für jeden Tag 1 Messwert, die Intervalle sollen jeweils zum Monatswechsel sein, als Labels die Monatsnamen oder der 1. Tag des Monats wie 01.06. zum Beispiel.
Das bedeutet die Intervallänge auf der Achse ist unterschiedlich, wie durch die unterschiedliche Anzahl der Tage für jeden Monat bestimmt. Und genau das kriege ich mit TDateTimeInterval ChartSource nicht hin. Vielleicht kennt jemand das Problem und es gibt ein Beispiel, das ich nicht gefunden habe.
Gruß
Hans-Peter
TAChart Zeitachsenproblem
Re: TAChart Zeitachsenproblem
Mit TDateTimeIntervalChartSource kriegst du das nicht hin. Nimm eine TListChartSource und füge für jeden Tag, der ein Label erhalten soll, einen Eintrag hinzu. Hier ein Beispiel, das ein Label für jeden Monats-Ersten setzt:
Diese ChartSource weist du der Marks.Source der x-Achse zu, und setze Marks.Style = smsLabel.
Nachteil ist, dass beim Zoomen zuwenig Label angezeigt werden. Falls das ein Problem sein sollte, kannst du dir die Diskussion im englischen Forum anschauen, die sich mit einem ähnlichen Thema befasst hat: http://forum.lazarus.freepascal.org/ind ... 334.0.html
Code: Alles auswählen
procedure TForm1.CreateMonthLabels(AYear: Integer);
const
MASK = 'dd/mmmm'; // so werden die Labels formatiert
var
m: Integer;
dt: TDateTime;
begin
ListChartSource1.Clear;
for m := 1 to 12 do
begin
dt := EncodeDate(AYear, m, 1);
ListChartSource1.Add(dt, 0, FormatDatetime(MASK, dt));
// für die x-Achse muss dt als 1. Parameter verwendet werden. Der 2. Parameter (0) ist ein Dummy
// Falls die Achse vertikal verlaufen würde, wäre die Reihenfolge ...(0, dt,...)
// Falls beide Richtungen möglich sind, verwende einfach dt für beide Werte: ...(dt, dt,...)
end;
end;
Nachteil ist, dass beim Zoomen zuwenig Label angezeigt werden. Falls das ein Problem sein sollte, kannst du dir die Diskussion im englischen Forum anschauen, die sich mit einem ähnlichen Thema befasst hat: http://forum.lazarus.freepascal.org/ind ... 334.0.html
-
Weatherman
- Beiträge: 8
- Registriert: So 25. Jan 2015, 18:11
Re: TAChart Zeitachsenproblem
Hallo,
wunderbar, dein Vorschlag löst mein Problem, und damit sind auch meine anderen Zeitachsenschwierigkeiten erledigt.
Vielen Dank
Gruß Hans-P.
wunderbar, dein Vorschlag löst mein Problem, und damit sind auch meine anderen Zeitachsenschwierigkeiten erledigt.
Vielen Dank
Gruß Hans-P.