PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prob. mit Diagrammen (TChart, Delphi)!


Ganon
2003-02-15, 12:59:39
Hi,

ich habe ein Problem mit Delphi!

Zur Info: Ich habe kaum Ahnung von Delphi und lese mehr in der Hilfe als ich Pogrammiere!:D;)

Naja, egal! Auf jeden Fall muss ich das ganze in Delphi machen!

Also ich bin ja erst beim probieren und rumtesten, aber jetzt scheitert es schon!

Also ich habe ein Diagrammobjekt(TChart) und einen Schalter!

Wenn man auf den Schalter drückt passiert folgendes (i,x,y sind alles Integers)


i:=0;
x:=1;
y:=1;

while i<=15 do
begin
Series1.AddX(x);
Series1.AddY(y);
i:=i+1;
end;


Auf im Diagramm hab ich jetzt einen so komischen Linien-Verlauf!

Hab ich einen Logik-Fehler oder liegt es daran das Delphi was anders macht oder mache ich einfach nur was komplett Falsch?

Meiner Meinung nach sollte er bei Null beginnen (macht er ja nicht) und ansonsten eine gerade Linie erzeugen, oder?

Danke!

Xmas
2003-02-15, 14:51:25
Ich weiß zwar nicht genau was du vorhast, aber mir fallen dazu drei Dinge ein.

Zum Zählen benutzt man üblicherweise eine For-Schleife.

Du verwendest AddX und AddY falsch. Zum Einfügen von Punkten mit x- und y-Koortdinate musst du AddXY(x,y) verwenden.

Und letztlich sehe ich keinen Sinn darin 16 mal dieselben Koordinaten zu verwenden.

Ganon ohne Cookie
2003-02-15, 15:02:21
Hi,

:D

ist OK! Danke für die Hilfe mit AddXY!

Zur for-Schleife:

Wenn ich die benutze dann sagte er mir immer was von "muß eine lokale Variable sein". Ich hab aber keinen Schimmer wie ich eine lokale Variable definiere!

Jetzt sieht der Code so aus:

i:=0;
y:=0;
x:=0;
for i:=0 to 15 do
begin
x:=x+1;
y:=y+1;
Series1.AddXY(x,y);
end;


Nur das der Compiler jetzt das sagt:

[Warnung] Unit1.pas(44): FOR-Schleifenvariable muß eine einfache lokale Variable sein

Ganon ohne Cookie
2003-02-15, 15:04:35
Achja! Und er beginnt immernoch bei 1,1!

Was kann man dagegen machen?

Xmas
2003-02-15, 15:11:33
Originally posted by Ganon ohne Cookie
Achja! Und er beginnt immernoch bei 1,1!

Was kann man dagegen machen?
Na einen Punkt bei 0,0 einfügen ;)

Es wird immer vom Punkt mit dem niedrigsten X zum Punkt mit dem höchsten X gemalt (zumindest wenn Series1 den Darstellungstyp "Linie" hat).

Lokale Variablen werden so deklariert:

procedure TForm1.Button1Click(Sender: TObject);
var
i, x, y: Integer;
begin
x := 0;
y := 0;
for i := 0 to 15 do
begin
// ...
end;
end;

Ganon
2003-02-15, 15:27:15
Hi,

danke! Manchmal kann ich echt blöd sein! Klar das der Punkt 0,0 fehlt, wenn man bei 1,1 beginnt!:)