AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TChart Raster individuell anpassen

Ein Thema von Friday · begonnen am 5. Apr 2017 · letzter Beitrag vom 10. Apr 2017
Antwort Antwort
Friday

Registriert seit: 6. Mai 2008
106 Beiträge
 
Delphi 12 Athens
 
#1

TChart Raster individuell anpassen

  Alt 5. Apr 2017, 11:03
Hallo,
bei einem TChart (Standard von XE3) habe ich ein Raster für die X-Achsen-Werte 1, 2, 3, 4 etc.
Nun möchte ich ab einem bestimmten Wert das Raster auf z.B. <x>.2 ändern: Also 1, 2, 3, 4, 5.2, 6.2, 7.2 etc.
Ist sowas möchlich und wenn ja wie?
Das einzige was mir momentan einfällt, ist das Raster komplett zu deaktivieren und alles manuell im AfterDraw zu zeichnen. Schöner wäre es natürlich die Funktionalität der Komponente in Anspruch zu nehmen.

danke
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TChart Raster individuell anpassen

  Alt 5. Apr 2017, 15:29
Der Chart hat ein OnGetAxisLabel -Event. Das kannst du füllen.
  Mit Zitat antworten Zitat
Friday

Registriert seit: 6. Mai 2008
106 Beiträge
 
Delphi 12 Athens
 
#3

AW: TChart Raster individuell anpassen

  Alt 6. Apr 2017, 12:21
Danke, aber was hilft mir dieses Event? Selbst zeichnen müsste ich das Raster ja dann doch, warum dann nicht im OnAfterDraw Event?
Sprich was habe ich für Vorteile mit dem OnGetAxisLabel Event?

Ich hatte ja gehofft dass TChart das zeichnen des Rasters weiterhin übernehmen kann und ich nur eine Verschiebung des Rasters ab einerm gewissen X-Achsen-Wert definiere.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.196 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TChart Raster individuell anpassen

  Alt 6. Apr 2017, 16:37
Sorry, ich habe nicht ordentlich gelesen und dachte du wolltest nur die Achsenbeschriftung, nicht die tatsächlichen Positionen der Achsenmarkierungen anpassen.

Man scheint das einmal mit dem OnGetNextAxisLabel -Event machen zu können, ich durchschaue das aber ehrlich gesagt selbst nicht so wirklich.

Die andere Möglichkeit wäre, einfach alle Items deiner Achse zu nehmen die größer als dein Schwellwert sind und die weiter nach rechts zu rücken:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
   shiftAfterPosition = 4.0;
   shiftByValue = 0.2;
var
   axis: TChartAxis;
   itemIndex: Integer;
   itemValue: Double;
begin
   axis := Chart1.Axes.Bottom;

   for itemIndex := Pred(axis.Items.Count) downto 0 do
      if (axis.Items[itemIndex].Value > shiftAfterPosition) then begin
         itemValue := axis.Items[itemIndex].Value;
         axis.Items.Remove( axis.Items[itemIndex] );

         itemValue := itemValue + shiftByValue;
         axis.Items.Add( itemValue, axis.LabelValue(itemValue) );
      end;
end;
Angehängte Grafiken
Dateityp: png Unbenannt.png (49,0 KB, 27x aufgerufen)
  Mit Zitat antworten Zitat
Friday

Registriert seit: 6. Mai 2008
106 Beiträge
 
Delphi 12 Athens
 
#5

AW: TChart Raster individuell anpassen

  Alt 8. Apr 2017, 20:00
danke schöner Günther, das funktioniert wunderbar
  Mit Zitat antworten Zitat
Friday

Registriert seit: 6. Mai 2008
106 Beiträge
 
Delphi 12 Athens
 
#6

AW: TChart Raster individuell anpassen

  Alt 10. Apr 2017, 18:31
nun habe ich doch noch eine Folge-Frage: Durch das Verschieben des Rasters habe ich an einer Stelle (bzw. sogar an zwei Stellen wegen eines Zusatz-Axen-Item) sehr eng aufeinanderfolgende Raster und damit noch viel eng aufeinanderfolgendere Minor-Ticks. Kann ich diese nicht für einen (bzw. 2) Raster-Schritt einzeln deaktivieren?
Angehängte Grafiken
Dateityp: png MinorTicks.png (1,6 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz