TChart und AxisTranformation

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

TChart und AxisTranformation

Beitrag von photor »

Hallo Forum,

Anknüpfend an den Thread http://www.lazarusforum.de/viewtopic.php?f=55&t=9917 habe ich eine (Nach)Frage: zusätzlich zu dem beschriebenen Chart mit 2 unterschiedlich LinesSeries und entsprechenden (mit {Left,Right}AxisTransformation) skalierten Y-Achsen auf einem Tab, möchte ich auf einem weiteren Tab ein weiteres Chart mit 2 (vollkommen anderen) LineSeries darstellen. Folglich brauche ich 2 weitere AxisTransformations.

Wenn ich aber eine weitere definiere wird diese für den ersten Tab genommen. Ich sehe nicht, wo ich die den ChartAchsen zuweisen kann. Weiß jemand Rat? (Ich hätte vermutet, dass man jeder Achse für jedes Chart eine Transformation zuweisen kann; es sieht aber so aus, dass die Transformationen allgemeiner definiert werden - dann muss ich sie aber eben den Achsen zuweisen).


Dankbar für einen Hinweis. Ciao,

Photor

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

Re: TChart und AxisTranformation

Beitrag von wp_xyz »

Mit Tab meinst du die Seite eines PageControls? Du hast zwei Seiten mit jeweils völlig unabhängigen Charts?

Du musst nur den Chart, dem du die Transformations zuwelsen willst, anklicken (dazu ggfs zum betreffenden Tab wechseln). Dadurch wird der Chart im Objektbaum (links über dem Objektinspektor) markiert. Dort findest du dann die x und y Achsen (als "Bottom" und "Left" bezeichnet). Die Achsen nacheinander anklicken (im Objektbaum, nicht im Formulardesigner), und du kannst jeweils im Objektinspektor darunter die Transformations für die betreffende Achse einstellen.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TChart und AxisTranformation

Beitrag von photor »

wp_xyz hat geschrieben:Mit Tab meinst du die Seite eines PageControls? Du hast zwei Seiten mit jeweils völlig unabhängigen Charts?

Jo. Genau so. Auf TabSheet1 funtioniert es mit den LineSeries Power und Torque (darauf bezieht sich der vorherige Thread).

wp_xyz hat geschrieben:Du musst nur den Chart, dem du die Transformations zuwelsen willst, anklicken (dazu ggfs zum betreffenden Tab wechseln). Dadurch wird der Chart im Objektbaum (links über dem Objektinspektor) markiert. Dort findest du dann die x und y Achsen (als "Bottom" und "Left" bezeichnet). Die Achsen nacheinander anklicken (im Objektbaum, nicht im Formulardesigner), und du kannst jeweils im Objektinspektor darunter die Transformations für die betreffende Achse einstellen.


Hm. Das hatte ich so gedacht (und logisch gefunden). Aber ich kann dann nur zwischen "LeftAxisTransfotrmation" und "RightAxisTransformation" wählen. Das ist aber eigentlich nur der jeweilige Oberbegriff unter dem die eigentlichen Transformationen zu finden sind ("LeftAxisTransformationAutoScaleAxisTransform1" bzw. "...2"; dito für "Right...").

Ich hoffe, das Bild im Anhang macht das deutlich: oben der Objektbaum, in dem jetzt die LeftAxis auf TabSheet4 selektiert ist; RightAxis ist ebenfalls erzeugt. Die LineSeries habe ich dynamisch im Code erzeugt (kann ich auch im Objektbaum anlegen, wenn das so muss).

Und wenn ich jetzt die zusätzlichen "...Transformations2" generiert habe (erstmal mit Defaultwerten) werden die Charts in TabSheet1 beeinflusst - die sollten ja nun eigentlich unangetastet bleiben.

Ich habe auch kein Problem damit, die entsprechenden Definitionen im Programmcode vorzunehmen, wenn der Objectinspector zickt - Dann müsste ich wissen, welche Werte welcher Eigenschaft zugewiesen werden sollte.

Soweit zunächst und weiterhin dankbar für Tipps,

Photor
Dateianhänge
So sieht das in der IDE aus.
So sieht das in der IDE aus.

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

Re: TChart und AxisTranformation

Beitrag von wp_xyz »

photor hat geschrieben:Aber ich kann dann nur zwischen "LeftAxisTransfotrmation" und "RightAxisTransformation" wählen.

Dann hast du nur zwei Transformations auf dem Formular? Du brauchst aber vier, zwei Charts mit jeweils einer linken und einer rechten Achse - jede Achse braucht eine eigene Transformation. Für jede dieser Transformations erzeugst du eine AutoScaleAxisTransform. Jede Transformation wird der zugehörigen Achse zugewiesen.

Also zusammengefasst: du hast zwei Charts, jeder Chart hat seine eigenen Series, jeder Chart hat seine eigenen Achsen, jede Achse hat ihre eigene Transformation (wenn sie trasnsformiert werden soll).

Aber möglicherweise verstehe ich dich auch nicht. Wenn's immer noch nicht klappt, solltest du ein kleines Projekt beginnen, ein PageControl drauf klicken, zwei Charts, vier Transformations und alles relevante so machen wie in dem "großen" Projekt. Dann die pas, lfm, lpi und lpr Dateien in ein zip packen und hier hochladen. Dann kann ich mir das ansehen und wir kommen weiter - sonst wird das nur ein Herumraten...
Zuletzt geändert von wp_xyz am Di 1. Nov 2016, 16:57, insgesamt 1-mal geändert.

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: TChart und AxisTranformation

Beitrag von photor »

wp_xyz hat geschrieben:Also zusammengefasst: du hast zwei Charts, jeder Chart hat seine eigenen Series, jeder Chart hat seine eigenen Achsen, jede Achse hat ihre eigene Transformation (wenn sie trasnsformiert werden soll).


OK. Das war wahrscheinlich mein Denkfehler. Ich werde das probieren. Danke Dir wp_xyz.

Nachtrag: habe jetzt tatsächlich extra AxisTransformations für den Chat auf Tab4 angelegt - und nun klappt's tatsächlich, wie gedacht. Danke dafür wp_xyz

Ciao,

Photor

Antworten