Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi einfache TChart Sache... (https://www.delphipraxis.net/35671-einfache-tchart-sache.html)

Drunken_SheeP 17. Dez 2004 14:05

Re: einfache TChart Sache...
 
okay scheisse, zu früh gefreut...

ich hab zwar nu verstanden was dieses Valueindex (omg hab ich mich dabei dumm angestellt) aber mein problem löst das ja nicht. ich adde ja meine daten nicht nacheinandern, Also mit series1.add(23 , '5'); sondern muss es ja mit diesem Series AddXY(23 , 5) und dabei gibt es ja dieses valueindex nicht (oder etwa doch?).

was ich will ist halt, dass wenn ich einen Wert x eingebe. der balken bei x um eins erhöht wird. also ich geb z.B x=23 ein und der y wert(also der balken) ist dann 1, geb ich x=23 nochmal ein, dann steigt der y wert auf 2, wenn ichs ein drittes mal mach dann auf 3 usw. wenn ich aber ein anderes x, zB. x=3, eingeb, dann ist der balken auf dem x=3 1, usw. hoffe das system ist klar geworden. was ich im prinzip darstellen will ist wie oft ich einen wert gemessen habe. Auf der X-achse trag ich den gemessenen wert ein, und jedes mal wenn ich den eingeb, steigt der y wert von diesem x um eins.

was ich mir gedacht habe wie ich das lösen könnte(also quasi so irgendwie)

Delphi-Quellcode:
  X:= StrtoFloat(Edit1.text);
 
  Series1.AddXY( X, <Ywert-von-X> +1);
und eben dieses <Ywert-von-X> würd ich gern wissen :cry:

mikhal 17. Dez 2004 14:33

Re: einfache TChart Sache...
 
Wie du deine Meßreihe realisierst ist doch egal, mein Beispiel oben lieferte lediglich drei Balken auf der X-Achse mit entsprechenden Y-Werten.

Das Ereignis OnClickSeries sagt dir immer, welchen deiner Balken (welcher X-Wert) du angeklickt hast (ValueIndex), und die Eigenschaft Series.YValue[ValueIndex] liefert dir genau den gesuchten Y-Wert. Probier's doch mal aus.

Grüße
Mikhal

Drunken_SheeP 17. Dez 2004 15:24

Re: einfache TChart Sache...
 
ich habe ein einfaches form, ein Tchart drauf, ein series1 das ein balkendiagramm ist

deinen code, nur in sofern geändert, das ich aus Series1.Add, Series1AddXY gemacht habe:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Series1.AddXY(0.5, 1.5);
  Series1.AddXY(1.2, 2.5);
  Series1.AddXY(2.1, 3.2);
end;

procedure TForm1.Chart1ClickSeries(Sender: TCustomChart;
  Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  dYWert: Double;
  iNterWert: Integer;
  dXwert: Double;
begin
  iNterWert := ValueIndex;
  dYWert := Series.YValue[ValueIndex];
  dXWert := StrToFloat(Series.XLabel[ValueIndex]);
  ShowMessage(Format('Y-Wert ist %g an n-ter (%d) Position auf der x-Achse,%sder x-Wert beträgt %g',
                   [dYWert, iNterWert, #13#10, dXWert]));
end;
Dann kommt der Error:
blablabla... ' ' is not a valid floating point value'

mikhal 17. Dez 2004 16:58

Re: einfache TChart Sache...
 
Wann kommt der Error? Wahrscheinlich beim Auslesen von XLabel, das du freundlicherweise nicht gesetzt hast.

Laut OH solltest du es wohl so schreiben, damit mein Beispiel auch funktioniert:
Delphi-Quellcode:
  Series1.AddXY(0.5, 1.5, '1.5');
  Series1.AddXY(1.2, 2.5, '2.5');
  Series1.AddXY(2.1, 3.2, '3.2');
Grüße
Mikhal

Drunken_SheeP 19. Dez 2004 00:16

Re: einfache TChart Sache...
 
aye ich habs gelöst...mit dem lösungsweg hier hab ichs nicht geschaft, aber trotzdem vielen lieben dank. ich habs dann mit nem array gemacht. nun ist zwar meien wertetabbelle auf theoretisch begrenzt, aber praktisch macht das keinen unterschied.

noch eine klitzekleine frage hab ich aber noch. jedes mal wenn ich nen balken zu dem chart enge, wird die breite von den balken immer geringer...kann man das irgendwie abstellen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:32 Uhr.
Seite 2 von 2     12   

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