![]() |
TChart mit mehreren Bars
Guten Tag zusammen,
ich komme mit der TChart Komponente leider einfach nicht klar. Es ist für mich das erste Mal, dass ich sie in einem Programm verwende, aber trotz mehrerer Tutorials finde ich mich nicht zurecht. Ich kann zwar einfache Pie-Charts oder ähnliches mit Daten befüllen, mein Wunsch ist allerdings etwas komplizierter: Folgendendes ist in etwa Situation:
Delphi-Quellcode:
Ich möchte nun, dass ein TChart mit 20 Balkendiagrammen, 5 pro Seite, das Prozentuale Verhältnis der Personen darstellt.
type RPersonen=Record;
Peter,Hans,Michael:Real; Name:String; Top20:Array[1..20] of RPersonen
Delphi-Quellcode:
Das war mein erster Versuch, im Programm sind aber keine Seiten sichtbar (obwohl sie in den Eigenschaften aktiviert sind) und die Werte werden nicht richtig angezeigt (immernoch die Beispielwerte). Hat jemand eine Ahnung, was ich falsch mache ober bin ich gar völlig daneben? Vielen Dank für Eure Hilfe!
For I:=1 to 20 do
Begin Chart1.Serieslist[0].AddXValue(Top20[I].Peter); Chart1.Serieslist[1].AddXValue(Top20[I].Peter); Chart1.Serieslist[2].AddXValue(Top20[I].Peter); Chart1.Labels[I]:=Top20[I].Name; End; |
AW: TChart mit mehreren Bars
Ich weiß jetzt nicht was du mit "5 pro Seite" meinst, aber probier mal nur
Delphi-Quellcode:
series.add(realValue);
|
AW: TChart mit mehreren Bars
Liste der Anhänge anzeigen (Anzahl: 1)
Kann ich nicht nachvollziehen- Kannst du mal ein Mini-Projekt einstellen?
Seitengröße auf fünf gestellt, fünf mal zehn Werte für jede der drei TBarSeries hinzugefügt und das kommt dabei raus. |
AW: TChart mit mehreren Bars
Zitat:
|
AW: TChart mit mehreren Bars
Vielleicht hat er ein anderes Aussehen erwartet. So etwas wie ein TabControl (was man trotzdem super einfach realisieren könnte).
Aber noch viel verwirrender finde ich
Delphi-Quellcode:
:cyclops:
Peter,Hans,Michael:Real;
|
AW: TChart mit mehreren Bars
Vllt. enthält das ja schon Zahlenwerte, weil er ja irgendwas prozentual zeigen will :glaskugel: Aber trotzdem etwas verwirrend :P
|
AW: TChart mit mehreren Bars
Hallo zusammen, danke erstmal für eure Antworten :-)
Ich sehe schon, hier ist wohl etwas Erklärungsbedarf: @Darlo: Wenn ich bei meinem Code dein .Add einfüge funktioniert es so erstmal auch nicht, das muss noch etwas anderes sein, aber danke. Mit fünf pro Seite meine ich in der Tat die Pages Eigenschaft, entschuldigt bitte, dass ich mich so undeutlich ausgedrückt habe. Genau wie in der Beispielgrafik von "Der schöne Günther", mit zwei Buttons zum hin und herschalten. Ich habe die Pages-Funktion in den Eigenschaften aktiviert, bei mir kann man aber vertikal Scrollen, Buttons werden nicht angezeigt. Zu den Werten: Es geht (bei dem Beispiel) um drei Personen, die eine gewisse Geldmenge für etwas Ausgeben. Zum Beispiel: Büroartikel Pers1:5, Pers2:0,Pers.3:5 Verbrauchsmaterial: Pers1:10, Pers2:0, Pers3:0 Dann sollte mein Chart im ersten Fall das 50/50 Verhältis verdeutlichen und im zweiten mit einem einzigen Balken anzeigen, dass Pers1 100% des Geldes für Verbrauchsmaterial verwendet. Ist jetzt deutlicher, was ich eigentlich will? |
AW: TChart mit mehreren Bars
Schau mal
![]() Zu deinem Chartdesign: Ich glaube ich blicke da jetzt durch :wink: Allerdings muss ich erstmal selber überlegen :stupid: |
AW: TChart mit mehreren Bars
Zitat:
Delphi-Quellcode:
. Könnte sein, dass es das nur in TeeChart Pro gibt.
TPageNumTool
Ansonsten ist das ja wie gesagt auch einfach selbst zu machen. |
AW: TChart mit mehreren Bars
Guten Tag zusammen,
hier ein kleines Update. 1. Das Paging-Problem ist gelöst, die Buttons scheint es in der Tat nur in der Pro-Version zu geben. Das hat mich im ersten Moment irritiert, ist aber ja kein Problem, ich hab mir eben welche selbst gemacht. 2. Ich habe mal ein kleines Testprojekt erstellt. Dort erhalte ich beim Debuggen immer die Fehlermeldung "Quelldatei nicht gefunden: VCLTee.TeEngine.pas". Könnte es vielleicht daran liegen? Was kann ich denn dagegen tun? Kann man die Datei irgendwo nachladen, falls es tatsächlich ein Delphi-Fehler ist und nichts mit meinem Code zu tun hat? (Ohne Debugmodus erhalte ich allerdings keine Fehlermeldung, dann läuft es, wenn auch nicht so, wie ich es gerne hätte) Danke nochmal! |
AW: TChart mit mehreren Bars
Definiere "Debuggen"- Der TeeChart-Quelltext ist nicht dabei, den muss man kaufen. Das hast du wahrscheinlich nicht getan.
Gibt es denn nun ein Problem oder überrascht es dich nur, nicht durch den Quellcode der TeeChart-Methoden steppen zu können? |
AW: TChart mit mehreren Bars
Ich meinte einfach den Programmstart mit Quelltexthaltepunkten (F9). Ja, das wirds dann wohl sein, ok. Entschuldigt dann bitte die dumme Frage, ich hab mein XE7 ganz neu und war mir dessen nicht bewusst.
Also aber zurück zum eigentlichen Thema: Ja, es gibt ein Problem. Ich schicke euch mal den Quelltext meines Testprogramms:
Delphi-Quellcode:
Was ich erwartet hätte/möchte:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VclTee.TeeGDIPlus, VCLTee.TeEngine, VCLTee.Series, Vcl.StdCtrls, Vcl.ExtCtrls, VCLTee.TeeProcs, VCLTee.Chart; type TForm1 = class(TForm) Chart1: TChart; Button1: TButton; Series1: THorizBarSeries; Series2: THorizBarSeries; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin With Series1 do begin Add (5, 'Pears', clRed); Add (4, 'Apples', clRed); Add (4, 'Oranges', clRed); end; end; procedure TForm1.Button2Click(Sender: TObject); begin With Series2 do begin Add (5, 'Pears', clBlue); Add (6, 'Apples', clBlue); Add (16, 'Oranges', clBlue); end; end; end. Programmstart - leerer Chart (funktioniert) Button1Click - Drei rote Balken, alle über die volle Länge, da es ja noch keine anderen Daten gibt, die Werte also jeweils 100% entsprechen (funktioniert) Button2Click - Die drei Balken sollen jetzt 50/50,40/60,20/80 Verhältnisse anzeigen (stattdessen überlagern sich die Balken scheinbar, nur die Achsenskalierung ändert sich, aber der Balken bleibt 100% rot). Wo liegt der Fehler?:?: Es scheint jedenfalls immer so zu sein, dass die Rote Serie die Blaue überlagert, anstatt sich zu ergänzen... Danke! :) |
AW: TChart mit mehreren Bars
Liste der Anhänge anzeigen (Anzahl: 3)
Moin,
schau dir mal die drei Grafiken im Anhang an, so sieht dein Code bei mir aus, was du allerdings erwartet hast, ist das TChart die Berechnung der Daten für dich übernimmt, oder? Ich bin mir nicht sicher ob das (vorallem mit der Lite Version) so einfach geht. Man kann aber im Editor (bei Datenquelle war das glaube ich) Funktionen auswählen, vllt. solltest du da mal reinschauen. Oder wenn du die Daten aus einer DB beziehst, könntest du deine Daten für die Serien aus kalkulierten Feldern nehmen. Allerdings bin kein TChart Experte Mehr als ein paar einfache Daten anzuzeigen, habe ich mit der TChart Lite auch nicht gemacht. Vllt. hat noch jemand eine elegantere Lösung parat. Edit: Oder du schreibst die selbst eine kleine Funktion, die ausgehend von den Werten der Serie 1, die Werte für Serie 2 berechnet. Wobei das aber wahrscheinlich nicht das ist, was du erreichen willst. |
AW: TChart mit mehreren Bars
Hm, genau so hätte ich es gerne (abgesehen davon, dass ich es lieber als Balken untereinander hätte und als "Stack100%"), seltsam.. Hast du eine Erklärung dafür, warum es bei mir anders ist? Ist vielleicht irgendeine TChart-Einstellung falsch?
*Edit*: Ich hab das Tchart einfach gelöscht und ein neues erstellt, ohne etwas im Code zu ändern - jetzt gehts! Das verstehe ich zwar nicht so ganz, aber jetzt gehts ja... Vielen Dank! :-) Ich versuche jetzt mal, es auf das eigentliche Programm zu übertragen, melde mich nocheinmal, falls es Probleme gibt. |
AW: TChart mit mehreren Bars
XE7 Trial, TChart Lite, TChart Komponente auf die Form, bei 3D auf 2D umgestellt und dann die Serien dazu.
Eigentlich mache ich das am liebsten alles zur Laufzeit, weil ich dann den Überblick behalte. Ziehe vllt. nochmal zum Testen eine "frische" Chart auf deine Form. Aber ansonsten bin ich da ein bisschen überfragt :( |
AW: TChart mit mehreren Bars
TChart hat so dermaßen viele Optionen, das man beim frustrierten Rumgeklicke und Ausprobieren schnell mal irgendwo ein Häkchen setzt, was dann -wenn es eigentlich funktionieren sollte- im Weg ist.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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