TAChart Zeitachsenproblem

Rund um die LCL und andere Komponenten
Antworten
Weatherman
Beiträge: 8
Registriert: So 25. Jan 2015, 18:11

TAChart Zeitachsenproblem

Beitrag von Weatherman »

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

wp_xyz
Beiträge: 5320
Registriert: Fr 8. Apr 2011, 09:01

Re: TAChart Zeitachsenproblem

Beitrag von wp_xyz »

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:

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;
 
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

Weatherman
Beiträge: 8
Registriert: So 25. Jan 2015, 18:11

Re: TAChart Zeitachsenproblem

Beitrag von Weatherman »

Hallo,

wunderbar, dein Vorschlag löst mein Problem, und damit sind auch meine anderen Zeitachsenschwierigkeiten erledigt.

Vielen Dank

Gruß Hans-P.

Antworten