Delphi-PRAXiS

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 Mehrere Kurven mit frxChartObject (https://www.delphipraxis.net/109842-mehrere-kurven-mit-frxchartobject.html)

EccoBravo 8. Mär 2008 21:22


Mehrere Kurven mit frxChartObject
 
Hallo,

Beginne gerade mit FastReport4 (RAD2007) zu arbeiten, Umstellung von QuickReport 3.5.

Problem mit dem ChartObject von FastReport:

Eine Kurve zeichnen (wie in den Demos gezeigt) nicht schwierig.
Als Diagrammtyp benutze ich Line Normal aus der Standard Gallerie.
Wenn ich 2 Kurven zeichnen möchte, geht es nur mit gleichen Stützstellen der x-Achse für beide Kurven,
auch wenn ich 2 verschiedene Kurven mit verschiedenen Stützstellen in x vorgebe,
dann benutzt frxChartObject nur die x Stützstellen der ersten Kurve.
Ergebnis ist dann, daß die 2. Kurve in x verzerrt und somit falsch ist.

Was muß ich machen, damit ich in x und y vollkommen unabhängige Kurven zeichnen und drucken kann?

Vielen Dank und einen schönen Sonntag

E. B.

EccoBravo 9. Mär 2008 20:25

Re: Mehrere Kurven mit frxChartObject
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

das ist mein Code zu dem Problem:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
    x[1] := 1;
    y[1] := 1;
    x[2] := 2;
    y[2] := 1.5;
    x[3] := 3;
    y[3] := 1.7;
    x[4] := 4;
    y[4] := 1.9;
    x[5] := 5;
    y[5] := 2.3;
    x[6] := 6;
    y[6] := 2.4;
    x[7] := 7;
    y[7] := 2.6;
    x[8] := 8;
    y[8] := 3;
    x[9] := 9;
    y[9] := 3;
    x[10] := 10;
    y[10] := 2.7;
    x[11] := 11;
    y[11] := 2.5;
    x[12] := 12;
    y[12] := 2.2;

    x1[1] := 0.5;
    y1[1] := 0.5;
    x1[2] := 1;
    y1[2] := 0.75;
    x1[3] := 1.5;
    y1[3] := 0.85;
    x1[4] := 2;
    y1[4] := 0.95;
    x1[5] := 2.5;
    y1[5] := 1.15;
    x1[6] := 3;
    y1[6] := 1.2;
    x1[7] := 3.5;
    y1[7] := 1.3;
    x1[8] := 4;
    y1[8] := 1.5;
    x1[9] := 4.5;
    y1[9] := 1.5;
    x1[10] := 5;
    y1[10] := 1.35;
    x1[11] := 5.5;
    y1[11] := 1.25;
    x1[12] := 6;
    y1[12] := 1.1;
end;

procedure TForm1.frxUserDataSet1GetValue(const VarName: string;
    var Value: Variant);
begin
    if VarName = 'Y' then
        Value := y[frxUserDataSet1.tag]
    else if Varname = 'X' then
        Value := x[frxUserDataSet1.tag]
    else if VarName = 'Y1' then
        Value := y1[frxUserDataSet1.tag]
    else if Varname = 'X1' then
        Value := x1[frxUserDataSet1.tag];

end;

procedure TForm1.btClick(Sender: TObject);
begin
    frxReport.ShowReport(true);
end;

procedure TForm1.frxUserDataSet1First(Sender: TObject);
begin
    frxUserDataSet1.Tag := 1;
end;

procedure TForm1.frxUserDataSet1Next(Sender: TObject);
begin
    frxUserDataSet1.Tag := frxUserDataset1.Tag + 1;
end;

procedure TForm1.frxUserDataSet1Prior(Sender: TObject);
begin
    frxUserDataSet1.Tag := frxUserDataset1.Tag - 1;
end;

procedure TForm1.frxUserDataSet1CheckEOF(Sender: TObject; var Eof: Boolean);
begin
    eof := frxUserDataSet1.Tag > 12;
end;

end.
Im Attachment ist das Diagramm, welches ich erhalte angefügt.
Obwohl beide Kurven unterschiedliche X-Werte (X, X1) haben werden die mit den X-Werten der ersten Kurve (X) gezeichnet.

In TeeChart und QRChart ging es aber richtig.


Wenn jemand eine Idee´hat würde ich mich freuen.

Grüße

EB

EccoBravo 10. Mär 2008 15:14

Re: Mehrere Kurven mit frxChartObject
 
Hallo allerseits,

habe das Problem inzwischen selber lösen können, ist ganz einfach, wenn mans weiss.
Ich habe mich von meinem Vorgängerprogramm QuickReport und QRChart irritieren lassen.
In QRChart ging es nur mit dem DiagrammTyp Points und FastLines.
Da wir hier auch eine TeeChart-Komponente wie im alten QuickReport verwenden, dachte ich, es ginge hier genauso.

Irrtum und viel einfacher:
Wenn ich im Chart-Dialog mit dem "+" eine neue Kurve erzeuge,
kommt in "Datenquelle" die Frage "DataSet", in "Werte" die Fragen "Y" und "X (optional)" usw.
Ganz unten im "Sonstige Optionen"-Teil des Dialogs kommt damm die Frage "X-Achse".
Dort gibt es die Möglichkeiten "Text", "Zahl" und "Datum" (default "Text").
Und dieses war der Übeltäter.
Bei Kurven, die in "X" unabhängig sein sollen muß hier immer "Zahl" stehen.
Das wars.

Danke für Eure Geduld

E. B.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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