AGB  ·  Datenschutz  ·  Impressum  







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

TChart werte anzeigen

Ein Thema von renekr · begonnen am 19. Sep 2005 · letzter Beitrag vom 21. Jun 2007
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#11

Re: TChart werte anzeigen

  Alt 19. Sep 2005, 12:34
@marabu,

das mit dem ersten Wert war mein Fehler:
  If Chart1.Series[i].GetCursorValueIndex >=0 Then natürlich fängt ja der Index mit 0 an. (ein Fehlerder mir immer wieder passiert, und schon Stunden der Fehlersuche gekostet hat.)
Das mit der Aktualisierung trifft zu. Ich habe, um die Wartezeit zu verkürzen, geklickt und damit warscheinlich ein refresh ausgelöst, lass also den Besen da wo er ist.

@renekr

[da war ein roter Kasten von marabu->]
mit marks geht das leider daneben habe ich auch bemerkt, nimm lieber die YValues:
Hint:=Chart1.Series[i].YValueToText(Chart1.Series[i].YValues[Chart1.Series[i].GetCursorValueIndex]);
Mfg
BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: TChart werte anzeigen

  Alt 19. Sep 2005, 20:39
WOW:
Ihr 2 seit die größten.
Very Big Thanks von mir.
Ich hoff ich kann euch auch mal so schnell und Kompetent helfen.
Ich habe seit Samstag das Komplette Internet durchsucht und mich wund gegoogelt ohne Erfolg.

Also nochmal Danke von meiner Seite.

Werd jetzt noch ein bisschen dran feilen,damit ich im hint die Y Value angezeigt bekomt,den Serien namen,und den X Name dazu,dann ist es 1000 % perfect.
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: TChart werte anzeigen

  Alt 2. Okt 2005, 14:34
Hi,
ich hoffe ihr 2 könnt mir nochmals kurz hekfen:

Habe folgenden Hint gebastelt:

HintStr :=cs.ValueMarkText[index]+' -- '+cs.YValueToText(cs.YValues[index])+' % -- Gruppe :'+cs.Title;

Ich habe 3 Series:

Serie 0 zeigt folgenden Hint an:
2005 KW :19 -- 96 % -- Gruppe : Mittelwert von Basis

Serie 1 zeigt folgenden Hint an:
96 -- 96 % -- Gruppe : Mittelwert von Sound

Serie 2 zeigt folgenden Hint an:
2005 KW :19 -- 96 % -- Gruppe : Mittelwert alle Gruppen


Warum zeigt der Hint beim 2 .Chart als cs.ValueMarkText[index] den Wert in der Y achse an? und nicht wie bei den 2 andeen Serien die Beschriftung der X Achse.
Was ist da falsch?
Füllen tue ich den Chart bei allen Gleich. 100 %ig.

Danke.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: TChart werte anzeigen

  Alt 2. Okt 2005, 15:23
Hallo René,

hast du Code, mit dem ich dein Problem auf meiner Maschine nachstellen kann? Am liebsten ein kleines Stück, welches nur das Problem zeigt - nicht gleich dein ganzes Projekt...

Ansonsten denke ich, dass du vielleicht den Markertext bei allen Punkten initialisiert hast, nur bei Serie 1 nicht - deshalb erhältst du dort 96 als Defaultwert.

Grüße vom marabu
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: TChart werte anzeigen

  Alt 2. Okt 2005, 18:38
Hi,
also wie gesagt ich habe folgendes:
ONCREATE:
Application.OnShowHint := AppShowHint;

procedure TForm1.AppShowHint(var HintStr: string; var CanShow: boolean;
var HintInfo: THintInfo);
var
part: TChartClickedPart;
index: integer;
c: TChart;
cs: TChartSeries;
begin
if (hintinfo.HintControl is TChart) then
begin
c := TChart(HintInfo.HintControl);
c.CalcClickedPart(HintInfo.CursorPos, part);
if Assigned(part.ASeries) then begin
cs := part.ASeries;
index := cs.GetCursorValueIndex;
if index >= 0 then
HintStr :=cs.ValueMarkText[index]+' -- '+cs.YValueToText(cs.YValues[index])+' % -- Gruppe :'+cs.Title;
HintInfo.ReshowTimeout := 50;
end;
end;
end;

chart befülle:

chart2.Series[2].Add(StrToInt(KW_Leistung_2005_MW[i]),IntToStr(2005)+' KW :'+IntToStr(i), clYellow);

Der Hint muß so aussehn:
2005 KW :19 -- 96 % -- Gruppe : Mittelwert von Basis
wenn er falsch ist sieht er so aus:
96 -- 96 % -- Gruppe : Mittelwert von Sound

96 steht für den Wert in der Y Achse wo ich drauf bin,der variert auch ds geht,aber er sollte eigentlich die X Beschriftung anzeigen und nicht den Y Wert.


// Die Charts befülle ich immer so in einer For 1:= do.. schleife

Ich habe 2 Charts beide glecih,
Function zum befüllen des Charts ist Identisch und denoch ist bei Chart 1 Serie 2 der Hint falsch:
Im chart2 Serie2 ist er korrekt,obwohl die selbe Funktion zum befüllen dahinter steckt.

wie kann das sein.
Komisch ist das bei Chart 2 alles ok ist?!?!?!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: TChart werte anzeigen

  Alt 2. Okt 2005, 19:34
Laut Dokumentation übergibst du einen XLabel als zweiten Parameter der Methode Add() beim Befüllen deiner ChartSeries. Wenn du auf diesen Wert im Ereignis OnShowHint zugreifen willst, dann so:

Delphi-Quellcode:
...
HintStr := cs.XLabel[index] + ' -- ' + cs.YValueToText(cs.YValues[index])
  + ' % -- Gruppe :' + cs.Title;
...
Du kannst die cs.XLabel aber auch getrennt setzen. Eine letzte Möglichkeit zur Bestimmung von MarkText ist das Ereignis ChartSeries.OnGetMarkText - bei dieser Methode kann der Anzeigetext erzeugt werden, wenn er gebraucht wird - just in time.
Du musst prüfen, ob du an irgendeiner Stelle deine vermeintlich korrekt gesetzten Anzeigetexte überschreibst, indem du eine dieser Alternativen verwendest.

marabu

PS: Im Regelfall gilt natürlich XLabel[i] = ValueMarkText[i], aber der Zugriff über XLabel ist bei deiner Art des Befüllens semantisch sauberer.
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: TChart werte anzeigen

  Alt 2. Okt 2005, 20:39
Hi,
man du bist der größte,ich habe mit Charts erst vor ner Woche angefangen und dank dir alles hinbekommen was ich wollte.

Das mit XLabel ging perfekt.
Mich wundert es nur, das es in 1.chart nciht ging und im 2 Chart geht.

Naja mit dem XLabel geht alles und ist besser.

Danke.
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#18

Re: TChart werte anzeigen

  Alt 21. Jun 2007, 09:17
Hi marabu,
Ich hoffe du kannst mir nochmal kurz helfen?

Ich habe ja das Appshowhint in dem Oncreate drin.
Damit mache ich die Hints beim TChart damit ich die Werte angezeigt bekomme.

Nun will oder muss ich von TMSSoftware das advstringgrid verwenden das auch einen OfficeHint hat.
Der sieht anderst aus und man kann noch nette sachen damit machen und darstellen lassen.

Mein Problem :
Folgende Konstellation:

OnCreate: Application.OnShowHint:=AppShowHint; Das hat dann zur Auswirkung das der Office hint für das Advstringgrid nicht geht.
Wenn ich das weg mache dann geht er wieder aber dafür mein TChart Hint logischeerweise nicht mehr.

Ich würde aber gerne alles habn also das beim TChart die AppShowHint function wirkt und beim advstringgrid der normale OfficeHint von TMS Software.


Siehst du da eine möglichkeit das hinzubekommen?

Danke.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:39 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