Autor Beitrag
Dhakiyah
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: 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 ???

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Mo 23.01.12 17:38 
Warum schaltest du nicht einfach die Marks ein ?
Einloggen, um Attachments anzusehen!
Dhakiyah Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Di 24.01.12 10:18 
user profile iconDhakiyah hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Di 24.01.12 10:29 
ausblenden 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... :cry: :cry: :cry:
Einloggen, um Attachments anzusehen!
_________________
Es ist soooo flauschig !!!
guinnes
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: Di 24.01.12 10:47 
user profile iconguinnes hat folgendes geschrieben Zum zitierten Posting springen:
Ansonsten bleibt dir nur : Im OnAfterDrawValues selber zeichnen
Dhakiyah Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Di 24.01.12 10:50 
Und wie geht das?
Hab da gar keine Erfahrung mit, mache zum ersten Mal was mit Diagrammen..... :cry: :cry: :cry:

_________________
Es ist soooo flauschig !!!
guinnes
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 182
Erhaltene Danke: 14



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Di 24.01.12 15:12 
Ich habe es heraus gefunden, es geht über eine TStrings Liste:

ausblenden 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 !!!