![]() |
Re: TChart werte anzeigen
@marabu,
das mit dem ersten Wert war mein Fehler:
Delphi-Quellcode:
natürlich fängt ja der Index mit 0 an. :oops: :oops: :oops: (ein Fehlerder mir immer wieder passiert, und schon Stunden der Fehlersuche gekostet hat.)
If Chart1.Series[i].GetCursorValueIndex >=0 Then
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->] :mrgreen: mit marks geht das leider daneben habe ich auch bemerkt, nimm lieber die YValues:
Delphi-Quellcode:
Hint:=Chart1.Series[i].YValueToText(Chart1.Series[i].YValues[Chart1.Series[i].GetCursorValueIndex]);
Mfg BrunoT |
Re: TChart werte anzeigen
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. |
Re: TChart werte anzeigen
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. |
Re: TChart werte anzeigen
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 |
Re: TChart werte anzeigen
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?!?!?! |
Re: TChart werte anzeigen
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:
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.
...
HintStr := cs.XLabel[index] + ' -- ' + cs.YValueToText(cs.YValues[index]) + ' % -- Gruppe :' + cs.Title; ... 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. |
Re: TChart werte anzeigen
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. |
Re: TChart werte anzeigen
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:
Delphi-Quellcode:
Das hat dann zur Auswirkung das der Office hint für das Advstringgrid nicht geht.
OnCreate: Application.OnShowHint:=AppShowHint;
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:58 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