TaChart Achsenbeschriftung als "integer" Zahlen..

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1646
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

TaChart Achsenbeschriftung als "integer" Zahlen..

Beitrag von corpsman »

Sers,
wieh hier bereits gestartet bastle ich mal wieder mit TaChart herum.

Dieses mal versuche ich die Beschriftung der Achsen auf "Ganze" Zahlen zu setzen.

Dazu habe ich die Option aipInteger (TChartAxis.Intervals.Options) gesetzt. Das funktioniert bei der x-Achse perfekt, bei der Y-Achse komischerweise nur Manchmal :/
Bargraphissue.png
Bargraphissue.png (50.3 KiB) 188 mal betrachtet
Jemand ne Idee wie ich das hin bekomme ?
--
Just try it

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1646
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TaChart Achsenbeschriftung als "integer" Zahlen..

Beitrag von corpsman »

Ok, so gehts:

Code: Alles auswählen

Procedure TForm1.Chart1AxisList0MarkToText(Var AText: String; AMark: Double);
Begin
  AText := inttostr(round(max(0, AMark)));
End; 
Aber so "richtig" fühlt sich das nicht an ...
--
Just try it

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

Re: TaChart Achsenbeschriftung als "integer" Zahlen..

Beitrag von wp_xyz »

Muss ich mir mal genauer ansehen, aber fürs erste ist eine Abhilfe, zusätzlich auch die Intervals.Option aipCount zu setzen (zusammen mit allen anderen Options, außer aipGraphCoords).

[EDIT]
Nein, vergiss das. Ich habe den Fehler inzwischen gefunden und in Laz/main behoben. Falls du eine Release Version verwendest, kannst du das mit einer Zeile selbst fixen:

Öffne Unit TACustomSource, suche procedure TIntervalChartSource.CalculateIntervals(). Füge vor der Zeile "if aipUseNiceSteps in Params.Options" die Zeile "bestCount := 0" ein:

Code: Alles auswählen

procedure TIntervalChartSource.CalculateIntervals(
  AParams: TValuesInRangeParams; out ABestStart, ABestStep: Double);
...
begin
  CalcMinMaxCount(minCount, maxCount);
  bestCount := 0;
  if aipInteger in Params.Options then begin
    ...
  end;
  bestCount := 0;  // <---- DIESE ZEILE EINFÜGEN
  if aipUseNiceSteps in Params.Options then begin  
  ...

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1646
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TaChart Achsenbeschriftung als "integer" Zahlen..

Beitrag von corpsman »

*g*,
es freut mich dass meine Frage zu einer Verbesserung für alle geführt hat, da ich die head version nutze, werde ich einfach pullen und alles sollte funktionieren ;).
Danke fürs dran bleiben.
--
Just try it

Antworten