Autor |
Beitrag |
Dhakiyah
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Mo 23.01.12 15:09
Hallo!
Ich habe ein kleines Balkendiagramm, an dem ich die Werte an die Balken zusätzlich schreiben möchte.
Siehe Beispiel Bild "1500"
Aber wie geht das ???
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure Tfrm_mdi_statistik.Draw_Chart; var tc_ser: THorizBarSeries; begin ch_statistik.Title.Text.Clear; ch_statistik.Title.Text.Add('Allgemeine Zeitstatistik'); tc_ser := THorizBarSeries.Create(ch_statistik); ch_statistik.AddSeries(tc_ser); tc_ser.Marks.Visible := False; tc_ser.Title := 'Urlaub'; tc_ser.AddXY(30,1,'Gearb. Stunden',clred); tc_ser.AddXY(80,2, 'Urlaub', clblue); tc_ser.AddXY(90,3, 'Krankheit', clgreen); end; |
EDIT:
ODER den Wert IN den Balken schreiben, wäre auch möglich.
Die x-Achse sind %.
Einloggen, um Attachments anzusehen!
_________________ Es ist soooo flauschig !!!
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Mo 23.01.12 17:38
Warum schaltest du nicht einfach die Marks ein ?
Einloggen, um Attachments anzusehen!
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Di 24.01.12 09:57
Das wäre dann aber wieder so, wie ich es nicht haben wollte...
Bei der y-Achse sollten die Beschreibungen stehen 'Urlaub, Krankheit, etc.'
Die x-Achse ist das ganze in % und an die Balken wollte ich dran schreiben, welcher Wert dahinter steht.
Geht das nicht?
_________________ Es ist soooo flauschig !!!
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Di 24.01.12 10:18
Dhakiyah hat folgendes geschrieben : | Geht das nicht? |
Natürlich geht das so, du mußt nur die Eigenschaften dementsprechend einstellen. Ansonsten bleibt dir nur : Im OnAfterDrawValues selber zeichnen
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Di 24.01.12 10:29
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| ch_statistik.Title.Text.Clear; ch_statistik.Title.Text.Add('Allgemeine Zeitstatistik'); tc_ser := THorizBarSeries.Create(ch_statistik); ch_statistik.AddSeries(tc_ser); tc_ser.Marks.Visible := True; tc_ser.AddXY(110,1,'Gearb. Stunden', clblue); tc_ser.AddXY(50,2,'1444',clred); tc_ser.AddXY(30,3, 'Urlaub', clgreen); |
So, jetzt schreibt er an die y-Achse UND an den Balken den Text. In der Legende steht dann der %-Wert...
Ich weiß nicht was ich machen muss/soll/kann... 
Einloggen, um Attachments anzusehen!
_________________ Es ist soooo flauschig !!!
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Di 24.01.12 10:37
Als 1. solltest du Marks.Style auf smsValue stellen ( oder auf smsPercent oder smsPercentTotal, jenachdem, was dir lieber ist), dann noch Marks.Arrow.Visible auf false, Marks.Transparent auf true und Marks.Frame.Visible auf False
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Di 24.01.12 10:43
Das habe ich gemacht.
Aber es ist immer noch nicht so, wie ich es möchte.
Ich kann immer nur 2 Werte anzeigen, ich brauche aber 3.
Jetzt schreibt er zwar die Werte an die Balken dran, aber den %-Wert, den ich ja schon in der x-Achse habe.
Ich möchte aber an den Balken den tatsächlichen WErt dran schreiben, z.B. "1750 STunden"
_________________ Es ist soooo flauschig !!!
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Di 24.01.12 10:47
guinnes hat folgendes geschrieben : | Ansonsten bleibt dir nur : Im OnAfterDrawValues selber zeichnen |
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Di 24.01.12 10:50
Und wie geht das?
Hab da gar keine Erfahrung mit, mache zum ersten Mal was mit Diagrammen..... 
_________________ Es ist soooo flauschig !!!
|
|
guinnes
      
Beiträge: 182
Erhaltene Danke: 14
|
Verfasst: Di 24.01.12 11:31
Du schreibst einen EventHandler für das Ereigniss AfterDrwaValues deiner Serie. Darin zeichnest auf die Canvas deines Charts. Das ist nicht Diagrammspezifisch, sondern einfach nur ein Zeichnen auf eine Canvas.
Alternativ kannst du den Event OnGetMarkText der Serie benutzen, um in den Marks anzuzeigen, was immer du willst
|
|
Dhakiyah 
      
Beiträge: 327
Erhaltene Danke: 5
Windows 7
Delphi XE2
|
Verfasst: Di 24.01.12 15:12
Ich habe es heraus gefunden, es geht über eine TStrings Liste:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var s_krank, s_urlaub, s_gearb: TStrings; ... ... ... s_krank := TStringList.Create; s_urlaub := TStringList.Create; s_gearb := TStringList.Create; s_krank.Add('500'); s_urlaub.Add('200'); s_gearb.Add('1750'); tc_ser.Marks.Item[0].text := s_gearb; tc_ser.Marks.Item[1].text := s_krank; tc_ser.Marks.Item[2].text := s_urlaub; |
Einloggen, um Attachments anzusehen!
_________________ Es ist soooo flauschig !!!
|
|