AGB  ·  Datenschutz  ·  Impressum  







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

TChart Balkendiagramm mit Hint

Offene Frage von "Der schöne Günther"
Ein Thema von ebrithil · begonnen am 10. Jan 2014 · letzter Beitrag vom 14. Jan 2014
Antwort Antwort
ebrithil

Registriert seit: 11. Jul 2013
6 Beiträge
 
Delphi 2009 Enterprise
 
#1

TChart Balkendiagramm mit Hint

  Alt 10. Jan 2014, 14:54
Delphi-Version: 2009
Grüße liebe dp'ler

ich möchte ein kleines programm schreiben, in welchem verschiedene Werte in Torten- und Balken-Diagrammen dargestellt werden sollen.

Mein problem ist folgendes: ich möchte das beim mausover bei den balken ein hint-wert anzeigen (steht der genau wert und eine nähere erklärung drinne).

ich bin hier schon auf eine anderen foren eintrag gestoßen, nur leder klappen keine der lösungen bei mir.
link zum foren eintrag: http://www.delphipraxis.net/53563-tc...nzeigen-2.html

und ein ausschnitt aus meinem quellcode:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.ShowHint := true;
  Application.OnShowHint := Form1.AppShowHint;
end;

procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
// hier ist das problem, dass der Hint nicht aktualisiert wird, außer man klick
// oder verlässt das chart1 sowas wollte ich eig vermeiden
var
iWert,
i: Integer;
begin
  for i:=0 to form1.Chart1.SeriesCount-1 do
  begin
    if form1.Chart1.Series[i].GetCursorValueIndex >= 0 then
    begin
      iWert := form1.Chart1.Series[i].GetCursorValueIndex;
      form1.Chart1.Hint := form1.Chart1.series[i].YValueToText
                                        (Form1.Chart1.Series[i].YValues[iWert]);
    end;
  end;
end;



procedure TForm1.Appshowhint(var HintStr: String; var CanShow: boolean;
                             var HintInfo: THintInfo);
// hier ist das problem das die routine nicht durchlaufen wird
var
 part: TChartClickedPart;
 iwert,
 iIndex: 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;
      iIndex := cs.GetCursorValueIndex;
      if ( iIndex >= 0 )
      then
      begin
        iWert := form1.Chart1.Series[iIndex].GetCursorValueIndex;
        HintStr := form1.Chart1.series[iIndex].YValueToText
                                        (Form1.Chart1.Series[iIndex].YValues[iWert]);
      end;
      hintinfo.ReshowTimeout := 50;
    end;
  end;
end;
was mache ich falsch?
Wher rechtsschreib veler findet darf si bealten.

Nicht jeder der aus dem Rahmen fällt, war vorher im bilde.

Geändert von ebrithil (10. Jan 2014 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: TChart Balkendiagramm mit Hint

  Alt 10. Jan 2014, 15:00
Ich kenne mich nicht mit dem Chart aus, aber liegt es vielleicht nur am ShowHint Schalter des Charts, dass der Hint nicht angezeigt wird? Du setzt nur ShowHint der Anwendung auf True. Es sei denn es wird noch etwas anderes ausgeführt, in dem du diesen Schalter setzt.
  Mit Zitat antworten Zitat
ebrithil

Registriert seit: 11. Jul 2013
6 Beiträge
 
Delphi 2009 Enterprise
 
#3

AW: TChart Balkendiagramm mit Hint

  Alt 10. Jan 2014, 15:41
gleiche habe ich gerade probiert^^ leider erzeugt das ne zugriffsverletzung (bin gerade am suchen wo und warum er die exception schmeißt)

falls es jdm hilft hier exception meldung:
im projekt test.exe ist eine exception der klasse eaccessviolation mit der meldung 'zugriffsverletzung bei adresse 0049e4a8 in modul 'test.exe'. lesen von adresse 00000039' aufgetreten.

melde mich sobald ich was rausgefunden habe

EDIT: der fehler liegt in der zeile
iWert := form1.Chart1.Series[iIndex].GetCursorValueIndex; Jetze nur noch die frage warum?

EDIT2: der fehler is klar... wenn ich nur eine series habe und dann auf den BALKENINDEX zugreife-.-
so lautet es richtig:
Delphi-Quellcode:
iWert := form1.Chart1.Series[0].GetCursorValueIndex;
HintStr := Form1.Chart1.Series[0].YVAlueToText(Form1.Chart1.Series[0].YValues[iWert]);
und schon funktioniert es damit ist das thema eig geschlossen
Wher rechtsschreib veler findet darf si bealten.

Nicht jeder der aus dem Rahmen fällt, war vorher im bilde.

Geändert von ebrithil (10. Jan 2014 um 16:37 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: TChart Balkendiagramm mit Hint

  Alt 10. Jan 2014, 18:21
Lag der Fehler jetzt an deinem Indexfehler oder daran, dass du ShowHint nicht aktiviert hattest?
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: TChart Balkendiagramm mit Hint

  Alt 10. Jan 2014, 18:51
(Um ganz ehrlich zu sein hätte ich mir auch gewünscht, einen nicht erst den ganzen ersten Beitrag mit entsprechendem Quellcode lesen zu lassen und dann ein paar Beiträge weiter drunten zu flüstern, dass es sich irgendwie doch erledigt hat)
  Mit Zitat antworten Zitat
ebrithil

Registriert seit: 11. Jul 2013
6 Beiträge
 
Delphi 2009 Enterprise
 
#6

AW: TChart Balkendiagramm mit Hint

  Alt 14. Jan 2014, 12:13
sry das es so lange dauert bis ich antworte, hatte gerade andere probleme zu lösen...
der eigentliche fehler war das showhint vom chart nicht gesetzt war, bei meinem quelltext war noch zusätzlich der indexfehler (falls jdm ihn nutzen möchte).

@Der schöne Günther: wie soll ich das realisieren ich kann nicht alle einträge nachträglich änder? wenn es einen besseren weg gibt sag ihn mir bitte, damit ich ihn bei späteren posts anwenden kann.
Wher rechtsschreib veler findet darf si bealten.

Nicht jeder der aus dem Rahmen fällt, war vorher im bilde.

Geändert von ebrithil (14. Jan 2014 um 12:15 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: TChart Balkendiagramm mit Hint

  Alt 14. Jan 2014, 12:22
Nein, natürlich nicht. Aber es ging um 15:00 direkt mit einer konkreten Frage und einem großen Quelltext-Schnipsel los. Und nach weniger als 90 Minuten hattest du das Problem schon gelöst.

Schaut jemand nun um 18:00 rein, versucht die Frage zu verstehen und arbeitet sich durch den Quelltext um dann im Anschluss zu merken, dass die Sache schon erledigt ist - Naja.

Aber ja, es gibt wohl keine Allheilslösung und ich hätte genauso gut erst einmal querlesen können. Einmal Gruppenumarmung noch zum Schluss und gut ist
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 22:47 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