![]() |
TChart richtig beschriften
Liste der Anhänge anzeigen (Anzahl: 1)
Moin,
um die Frage zu verstehen, muss man sich den Anhang ansehen. Ich will folgendes : Unten in dem rot eingekreisten soll statt der '2', weil es sich um Monat handelt 'Feb.' stehen. Das gelb eingekreiste soll da, wo es jetzt steht, nicht zu sehen sein (das überlappt sich manchmal und man kann dann gar nichts mehr lesen. Stattdessen sollen diese zwei Zahlen immer unterhalb des Monats angezeigt werden. Dort solls dann ungefähr so aussehen :
Delphi-Quellcode:
Preisfrage ist, wo kann man das einstellen ? :shock:
Feb.
1,62 0,00 |
Re: TChart richtig beschriften
Für die gelb eingekreisten :
Seriesxx.Marks.Visible auf false Für den roten Kreis : Chartxx.OnGetAxisLabel bedienen ( Sollte gehen, wenn nicht, Chartxx.BottomAxis.Multiline auf True |
Re: TChart richtig beschriften
Gelber Kreis : erledigt, Thx, Guiness.
Zu dem anderen :
Delphi-Quellcode:
Nur mal kurz so getestet. Dann sind auch die Y-Achsenbeschriftungen betroffen. Wie halte ich denn die auseinander ? Wofür steht Labelindex ? Noch lieber wäre mir, wenn einer mir sagt, wie man die Hilfe dazu bringt, mit TChart zu funktionieren. :mrgreen:
procedure TfrmLinieChart.chStatGetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin inherited; LabelText := 'ASADF' end; |
Re: TChart richtig beschriften
Zitat:
Delphi-Quellcode:
if Sender = DBChart1.BottomAxis then
begin Zitat:
( Die Hilfe ist in der Tat etwas hakelig ) p.s. : Mehrzeilig hab ich noch nicht probiert, sollte aber gehen ( bei den Marks gehts definitiv ) Edit2 : Geht, Zeilentrennzeichen ist #$0D |
Re: TChart richtig beschriften
Uff, wird mühsamer als gedacht. Da geht fast nix. :mrgreen:
Delphi-Quellcode:
Ja, ValueIndex war gemeint und das steht immer auf -1. Bei "Sender is" kann ich angeben was ich will. Compiler machts nicht. Und zu guter Letzt : wozu und was macht der Parameter "Series" ?
procedure TfrmLinieChart.chStatGetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin inherited; ShowMessage(IntToStr(ValueIndex)); if (ValueIndex MOD 2 = 0) then if (Sender is ???) then begin LabelText := 'ASADF' end; end; |
Re: TChart richtig beschriften
Zitat:
Delphi-Quellcode:
Sender =, nicht is
procedure TForm1.ChartGetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin if Sender = Chart.BottomAxis then begin LabelText := LabelText + #$0D + 'Unten' + #$0D + 'Zeile3'; end; end; Zitat:
Zitat:
Hast du dir mal die Demos angesehen ? |
Re: TChart richtig beschriften
Bis hierher geht alles :
Delphi-Quellcode:
D.h. die X-Achse ist mit dem Labeltext beschriftet. Aber eben alle Werte. In der Hilfe steht nun dazu :
procedure TfrmLinieChart.chStatGetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin inherited; if Sender = chStat.BottomAxis then begin LabelText := 'ASADF'; end; end; Zitat:
|
Re: TChart richtig beschriften
Zitat:
Ich habe das Zeug nicht zu Hause, d.h. ich kuck Morgen mal danach ( Ich hab da noch irgendwo die TeeChart-Quäl-Texte :wink: )wie man von 1 nach 2 umschaltet |
Re: TChart richtig beschriften
Stell Chartxx.BottomAxis.LabelStyle auf talText, dann werden Series und ValueIndex richtig gefüllt
|
Re: TChart richtig beschriften
Liste der Anhänge anzeigen (Anzahl: 1)
Aha, das muss man erst mal finden.Nächstes Problem:der Platz unterhalb der Bottomaxis reicht nur für 2 Zeilen.Eventuell werden 5 gebraucht.LabelsMultiline gibts noch, das steuert aber nur, ob #13 oder ein Leerzeichen das Zeilenumbruchzeichen ist. Mit #13 gings ja, sofern mehr Platz da wäre.und da noch ein Schönheitsfehler :die Werte sind zentriert, was bei Zahlen komisch aussieht.
Hier ist noch der Source :
Delphi-Quellcode:
procedure TfrmLinieChart.chStatGetAxisLabel(Sender: TChartAxis;
Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin inherited; if Sender = chStat.BottomAxis then begin LabelText := MonatStr [ValueIndex + 1]; if ValueIndex mod 2 = 0 then LabelText := LabelText + #13 + IntToStr(ValueIndex+ 100) else LabelText := LabelText + #13 + IntToStr(ValueIndex+1); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 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