Delphi-PRAXiS
Seite 1 von 2  1 2      

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 -> Zoom to (https://www.delphipraxis.net/130726-tchart-zoom.html)

luckystar85 12. Mär 2009 08:29


TChart -> Zoom to
 
Moin,

gibt es eine Möglichkeit in einem TChart das aus mehreren TGanttSeries besteht zu diesen GanttSeries automatisch zu zoomen?

Im Detail:
Ich habe ein TChart in welchem sehr viele GanttSeries abgebildet sind. Links daneben gibt es eine Liste wo die ganzen Einträge noch einmal aufgelistet sind. Wenn ich dort auf einen Eintrag mit rechts klicken kann ich im Kontextmenü "Zoom to" aufrufen. Jetzt möchte ich gerne in diese GanttSeries zoomen. Gibt es dafür eine Möglichkeit?

Tyrael Y. 12. Mär 2009 15:53

Re: TChart -> Zoom to
 
Klar.

Bestimme den Rect für den Bereich in den du zoomen willst udn dann mach es mit

Delphi-Quellcode:
  meinChart.ZoomRect(meinRect);

luckystar85 13. Mär 2009 09:35

Re: TChart -> Zoom to
 
Zitat:

Zitat von Tyrael Y.
Klar.

Bestimme den Rect für den Bereich in den du zoomen willst udn dann mach es mit

Delphi-Quellcode:
  meinChart.ZoomRect(meinRect);

Soweit ist mir das vollkommen klar und das bekomm ich auch hin. Mir geht es um das Problem wie ich den Bereich (das Rect) in das gezoonmt werden soll bestimmen kann? Woher bekomm ich die Koordinaten?

nuclearping 13. Mär 2009 09:43

Re: TChart -> Zoom to
 
Mit der Maus ziehen und im schlimmsten Fall manuell abfangen?

Außerdem sollte meines Wissens nach ein TChart doch so'n Zoom von Haus aus anbieten? :gruebel:

luckystar85 16. Mär 2009 08:39

Re: TChart -> Zoom to
 
Na klar bietet TChart einen Zoom von Haus aus an. Bloß mir fehlen die Koordinaten im Chart um dort zu Zoomen. Ein Beispiel:
Ich habe mehrere Balken rechts die jeweils ein Start- und Enddatum haben. Wenn ich jetzt auf einen klicke und dann sage zoom to soll in diesen Bereich Start- und Enddatum gezoomt werden das man den Balken sehr gut erkennen kann. Mit ZoomRecht kann ich das auch problemlos machen, bloß fehlt mir die Funktion zum Herrausfinden der Pixelkoordinaten um das Rect zu bilden.

nuclearping 16. Mär 2009 09:31

Re: TChart -> Zoom to
 
Wie schon gesagt: Mein TChart zoomt von allein. :gruebel:

Schau doch mal den Objektinspektor durch. Hab grad kein Projekt hier vor mir.

luckystar85 16. Mär 2009 09:33

Re: TChart -> Zoom to
 
Zitat:

Zitat von nuclearping
Wie schon gesagt: Mein TChart zoomt von allein. :gruebel:

Schau doch mal den Objektinspektor durch. Hab grad kein Projekt hier vor mir.

Wenn ich mit der Maus ins Chart klicke und dort zoome funzt das wunderbar. Damit habe ich auch keine Probleme. Ich möchte aber von extern Popup-Menu im Chart zoomen. Also wenn ich im Popup-Menu "zoom to" auswähle, dann soll im Chart dieser Bereich automatisch vergrößert dargestellt werden.

nuclearping 16. Mär 2009 09:41

Re: TChart -> Zoom to
 
Das TChart hat doch sicher OnMouseDown- und OnMouseUp-Events. Dort kannst du das Rect ermitteln.

Tyrael Y. 16. Mär 2009 09:49

Re: TChart -> Zoom to
 
Zitat:

Zitat von nuclearping
Das TChart hat doch sicher OnMouseDown- und OnMouseUp-Events. Dort kannst du das Rect ermitteln.

Er möchte über ein Kontextmenu zoomen, das normale zoomen über Maus steht immer zur Verfügung und braucht nicht extra programmiert werden.


TRect ist eine Struktur von zwei Punkten.
Links oben und rechts unten.

Du weisst wieviele Gants du hast, du weisst wie hoch ein Gant ist, du weisst wie breit der Chart ist, du weisst wieviel Abstand der Chart selber zu den Gants hat...usw....du hast alle Informationen...also rechne bissel und du hast deine Punkte, füge noch unter Umständen einen Offset dazu....so schwer ist das nun auch nicht und dann einfach mit ZoomRect zoomen.

luckystar85 16. Mär 2009 09:55

Re: TChart -> Zoom to
 
Zitat:

Zitat von Tyrael Y.
Zitat:

Zitat von nuclearping
Das TChart hat doch sicher OnMouseDown- und OnMouseUp-Events. Dort kannst du das Rect ermitteln.

Er möchte über ein Kontextmenu zoomen, das normale zoomen über Maus steht immer zur Verfügung und braucht nicht extra programmiert werden.


TRect ist eine Struktur von zwei Punkten.
Links oben und rechts unten.

Du weisst wieviele Gants du hast, du weisst wie hoch ein Gant ist, du weisst wie breit der Chart ist, du weisst wieviel Abstand der Chart selber zu den Gants hat...usw....du hast alle Informationen...also rechne bissel und du hast deine Punkte, füge noch unter Umständen einen Offset dazu....so schwer ist das nun auch nicht und dann einfach mit ZoomRect zoomen.

Das geht doch aber nur wenn alle Gants im sichtbaren Bereich liegen. Was ist wenn der Anwender vorher schon per Hand gezoomt hat oder das kreuz und quer verschoben hat? Dann würde ich mit einem starren zoom immer einen Bereich vergrößern auch wenn da gar nichts liegt. Das finde ich nicht gerade optimal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr.
Seite 1 von 2  1 2      

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