AGB  ·  Datenschutz  ·  Impressum  







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

TChart richtig beschriften

Ein Thema von Hansa · begonnen am 28. Jan 2009 · letzter Beitrag vom 30. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

TChart richtig beschriften

  Alt 28. Jan 2009, 14:21
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:
Feb.
1,62
0,00
Preisfrage ist, wo kann man das einstellen ?
Miniaturansicht angehängter Grafiken
tchart_838.jpg  
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#2

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 14:34
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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 14:55
Gelber Kreis : erledigt, Thx, Guiness.

Zu dem anderen :

Delphi-Quellcode:
procedure TfrmLinieChart.chStatGetAxisLabel(Sender: TChartAxis;
  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
begin
  inherited;
LabelText := 'ASADF'
end;
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.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 15:10
Zitat von Hansa:
Dann sind auch die Y-Achsenbeschriftungen betroffen. Wie halte ich denn die auseinander ?
Der Sender sagt dir, welche der ( theoretisch seehr vielen ) Axis jetzt gemeint ist :
Delphi-Quellcode:
if Sender = DBChart1.BottomAxis then
begin
Zitat:
Wofür steht Labelindex ?
LabelIndex hab ich gar nicht, ValueIndex zeigt auf das X/Y-Werte-Paar, für das nun die Achsenbeschriftung gesucht wird
( 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
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 16:05
Uff, wird mühsamer als gedacht. Da geht fast nix.

Delphi-Quellcode:
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;
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" ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 16:24
Zitat von Hansa:
Uff, wird mühsamer als gedacht. Da geht fast nix.
Delphi-Quellcode:
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;
Sender =, nicht is

Zitat:
Ja, ValueIndex war gemeint und das steht immer auf -1.
bei mir auch, ich hatte gehofft, das wäre in der " Normalen " Version nicht so ( Ich benutze TeeChart Prof. )
Zitat:
Und zu guter Letzt : wozu und was macht der Parameter "Series" ?
das sollte die Serie sein, aus der du die X/Y-Paare auslesen kannst. Wird möglicherweise nur gefüllt, wenn du bestimmte Serien mit bestimmten Achsen verbindest.
Hast du dir mal die Demos angesehen ?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 19:05
Bis hierher geht alles :

Delphi-Quellcode:
procedure TfrmLinieChart.chStatGetAxisLabel(Sender: TChartAxis;
  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
begin
  inherited;
  if Sender = chStat.BottomAxis then begin
    LabelText := 'ASADF';
  end;
end;
D.h. die X-Achse ist mit dem Labeltext beschriftet. Aber eben alle Werte. In der Hilfe steht nun dazu :

Zitat:
Deklaration

property OnGetAxisLabel: TAxisOnGetLabel;

Beschreibung

Für jede angezeigte Achsenbeschriftung wird ein Ereignis ausgelöst. Es gibt zwei verschiedene Einsatzmöglichkeiten für OnGetAxisLabel:
1) Achsenbeschriftungen entsprechen Werten. In diesem Fall ist der Parameter Series Nil und der ValueIndex ist -1.
2) Achsenbeschriftungen entsprechen Reihenpunkten. Der Parameter Series entspricht einer zulässigen TChartSeries und der ValueIndex der aktuellen Reihenpunktposition. Sie können den für LabelText verwendeten Parameter ändern, um eine andere Achsenbeschriftung anzuzeigen.
Bei mir ist ja auch alles -1. Ich benutze also 1) Wo und wie kommt nun der Parameter Series ins Spiel ? Bei den Demos finde ich nichts passendes.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: TChart richtig beschriften

  Alt 28. Jan 2009, 19:21
Zitat von Hansa:
Aber eben alle Werte.
Das sollte dich bei dem Quelltext auch nicht wundern.
Ich habe das Zeug nicht zu Hause, d.h. ich kuck Morgen mal danach ( Ich hab da noch irgendwo die TeeChart-Quäl-Texte )wie man von 1 nach 2 umschaltet
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: TChart richtig beschriften

  Alt 29. Jan 2009, 09:36
Stell Chartxx.BottomAxis.LabelStyle auf talText, dann werden Series und ValueIndex richtig gefüllt
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#10

Re: TChart richtig beschriften

  Alt 29. Jan 2009, 15:56
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;
Miniaturansicht angehängter Grafiken
chart_197.jpg  
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz