Achsenbeschriftung in TeeChart bei BCB5
-
Ich habe Datum-Zeitwerte, Temperaturen und rel. Luftfeuchten aus einer TQuery der Art:
Datum-Zeit: 27.07.2005 17:58:22:12
Temperatur: 24.5
Feuchte: 88.7
als String und bestücke ein Chart mitLineSeries1->AddXY(StrToDateTime (tmp1),StrToFloat (StringReplace(Form1->AnzeigeWetterQueryTemperatur->Value, ".", ",", TReplaceFlags() << rfReplaceAll)), ' ', clTeeColor);und
Series2->AddXY(StrToDateTime (tmp1),StrToFloat (StringReplace(Form1->AnzeigeWetterQueryRF->Value, ".", ",", TReplaceFlags() << rfReplaceAll)), ' ', clTeeColor);Die Zeitachse habe ich unten mit dem Format dd.MM hh:nn deklariert.
In der Vorschau sieht auch alles prima aus. In der Applikation werden die Zeitwerte aber nicht dargestellt, das Gitter schon. Habe schon alles Mögliche probiert – keine Chance. Wenn ich LabelValue per Hand bestücken will (wie im Beispiel UAxisLab.cpp), scheitert es daran, dass in Chart1GetNextAxisLabel die Schleife
if (Sender == Chart1->BottomAxis)gar nicht erreicht wird. Ist unten denn keine BottomAxis? Was muss ich beachten?
Außerdem möchte ich eine zweite Y-Achse erstellen, da die Luftfeuchte leicht 100% erreichen kann, in Deutschland aber bei 35°C meist Schluss ist. Das ist auch kein Problem, aber wie ordne ich Series2 der zweiten Achse zu?
Und die alles entscheidende Frage: Ist TeeChart überhaupt die richtige Komponente (was ist mit 5-6 Y-Achsen) oder sollte man dann lieber ein anderes Produkt verwenden?
Schon jetzt besten Dank für jede Hilfe!
-
Grundsätzlich sollte es funktionieren. Bei mir hat er mal das Datum nicht angezeigt, weil ich unter Chart bearbeiten --> Diagramm --> Achsen --> Unten --> Werteformat irgend etwas falsches eingestellt hatte. Leider blicke ich noch nicht durch, wie es genau funktioniert (try and error).
-
Habs kurz ausprobiert:
Series1->AddXY(1,2,Date(),clRed);funktioniert.
-
schau mal ob in den Einstelloptionen der Bottomaxis, bei "Beschriftungen" der Stil auf "Wert" gesetzt ist
außerdem muß bei den Reihen unter "Allgemein->Horizontale Achse" das Datum/Zeit-Feld markiert sein
natürlich kann man die Einstellungen auch zur Laufzeit ändern:
Chart1->BottomAxis->LabelStyle = talValue;
Series1->XValues->DateTime = true;siehe auch die Hilfe zum TChart
-
Besten Dank helfer 22,
wenigstens bei der ersten Zuweisung sollte AXLabel mit übergeben werden. Das hatte ich im Eifer des Gefechts auskommentiert. Jetzt wird Datum/Zeit angezeigt. Try and error sind bei den Feinheiten aber immer noch angesagt.Kann mir noch jemand verraten, wie ich weiteren Y-Achsen weitere Series zuweise? In sämtlichen Beispielen, die ich finden konnte, geht es immer nur um eine Y-Achse.
-
zur Laufzeit gehts unter Reihen->Reihe auswählen->Allgemeines->Vertikale Achse->Rechts
zur Entwurfzeit: Series->VertAxis = aRightAxis;
und nochmal mein Tipp: schau mal in die TChart-Hilfe
-
Hallo Linnea,
die TChart-Hilfe geht, so weit ich es gesehen habe, immer von einer RightAxis aus. Aus der Hilfe zu VertAxis "...legt fest, von welcher vertikalen Achse (linke oder rechte Achse) die Reihe vertikal skaliert wird." Ich muß aber mehrere rechte Achsen parallel haben. Das klappt auch mitChart->RightAxis->CustomDraw(...);Nur, wie kann ich die ansprechen?
-
Das was du möchtest geht mit der mitgelieferten Variante von TeeChart nicht. Es gibt eine kostenlose Light Variante mit Graphen... Schau mal unter:
Bei den Beispielen kann der Graph mehrere Achsen darstellen. Kannst ja mal, schreiben ob es etwas taugt.