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 TChart: Scrollen (https://www.delphipraxis.net/66661-tchart-scrollen.html)

Kasch 2. Apr 2006 11:02


TChart: Scrollen
 
Hallo,

ich habe ein paar Fragen zum Scrollen:

Wenn ich bei der Tchart-Komponente scrolle mit der Maus, wie kann ich dann dafür sorgen, daß
danach wieder der aktuellste Wert angezeigt wird, also der "Cursor" zum aktuellsten Anzeigewert (per Timer
wird Tchart gefüttert) vorspringt und immer schön den Graphen anzeigt?

Wie kann ich eigentlich per Scrollbar etc bei Tchart scrollen? Ich kann nur mit der Maus aber ich würde das gerne per Schieberegler.

Und zu guter Letzt. Wie kann ich von Anfang an einen Anzeigebreich festlegen. Also angenommen ich ich will 100 Werte anzeigen, wie kann ich dafür sorgen, daß der Anzeigebereich nur 10 Werte (X-Achse) breit ist und immer automatisch weitergescrollt wird wenn die Werte den Anzeigenbereich verlassen?

Vielen Dank.

Der_Unwissende 2. Apr 2006 11:58

Re: TChart: Scrollen
 
Hi,
sorry aber das kannst du alles sehr einfach der Hilfe entnehmen. Will ja nicht unhöflich sein, aber ein wenig selbst machen steht halt auch in den Forenregeln drin.

Jedenfalls kannst du leicht in einem bestimmten Bereich arbeiten indem du dein Maximum automatisch wählst (kannst du schon zur Designzeit für die Untere Achse einstellen, wichtig nicht für die obere). Dort wo du deinen Wert hinzufügst kannst du gucken ob der Wert größer als deine Anzeigebreite (hier 10) ist und dann einfach dass Achsenmaximum - Breite als Minimum nehmen.

Delphi-Quellcode:
CONST ANZEIGE_BREITE = 10;

procedure init(const Chart : TChart);
begin
  Chart.BottomAxis.AutomaticMinimum := False;
  Chart.BottomAxis.AutomaticMaximum := True;
end;

// hier natürlich deine eigentliche Methode verwenden
procedure addXY(const X, Y : Double; const Series : TChartSeries; const Chart : TChart);
begin
  Series.AddXY(X, Y);
  if X > ANZEIGE_BREITE then
    begin
      Chart.BottomAxis.Minimum := Chart.BottomAxis.Maximum - ANZEIGE_BREITE;
    end; // if X > ANZEIGE_BREITE
end;
Ja, dass mit dem Balken funktioniert natürlich ganz ähnlich. Da musst du dir einfach eine Lösung aus dem hier schon genannten herleiten (ist so schwer nicht). Ein wenig dreisatz sollte dafür schon ausreichen

Gruß Der Unwissende

Kasch 2. Apr 2006 12:59

Re: TChart: Scrollen
 
Zitat:

sorry aber das kannst du alles sehr einfach der Hilfe entnehmen. Will ja nicht unhöflich sein, aber ein wenig selbst machen steht halt auch in den Forenregeln drin.
Da hast du vollkommen Recht. Ich hätte dazuschreiben sollen, daß in der Hilfe es nichts zum Thema TChart bzw. Chart gibt bei mir.
Selbst wenn ich die *.hlp-Dateien im Help-Ordner per Hand öffne, gibt es kein solches Modul in der Übersicht.
Nur bei einer Hilfe gibt es TChartFX.
Deswegen Frage ich solche "einfache" Frage

Ich probiere es jedenfalls mal mit deinen Angaben. Wird schon klappen. Vielen Dank

vsti 6. Dez 2007 13:27

Re: TChart: Scrollen
 
Für die die wissen möchten wie es mit dem Scrollbalken ganz einfach funktioniert

Delphi-Quellcode:
procedure TForm23.ScrollBar1Change(Sender: TObject);
begin
  Chart1.BottomAxis.StartPosition:=(-ScrollBar1.Position);
  Chart1.BottomAxis.EndPosition :=(200-ScrollBar1.Position);
end;
Edit: Flüchtigkeit :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 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 by Thomas Breitkreuz