Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 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;
Miniaturansicht angehängter Grafiken
unbenannt.png  
  Mit Zitat antworten Zitat