Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Einfache Graphen zeichnen

  Alt 28. Nov 2008, 18:14
Hallo ihr,
nun lag dieser Thread ziemlich lange brach, aber ich habe mich heute mal dran gesetzt und sie vervollständigt.

An sich ist diese Unit einfach zu verwenden:
  • Zuerst obligatorisches wie erstellen, zerstören, setzen von Breite, Höhe, Parent
  • Nun kann man die verschiedenen Eigenschaften setzen:
    • Das Intervall (sofern nicht manuell der Graph neue Werte bekommt)
    • Ein Ereignis welches bei jedem Intervall ausgelöst wird (sofern nicht manuell der Graph neue Werte bekommt)
    • Der Abstand zweier Gitterlinien zueinander
    • Eine Graphfarbe
    • Eine Netzfarbe
    • Eine Hintergrundfarbe
    • Eine Balkenfarbe
    • Eine Basislinie (s.u.)
    • Und irgendwann sollte man es starten (sofern nicht manuell der Graph neue Werte bekommt )

Nun habe ich mehrmals folgendes erwähnt:
Zitat:
(sofern nicht manuell der Graph neue Werte bekommt)
Ich meine damit, dass es drei Modi gibt:
  • Angehalten
  • Manuell
  • Automatisch
Der Automatische Modus lässt intern einen Timer laufen, nachdem ein neuer Wert eingetragen werden soll. Dabei wird das Ereignis "OnInterval" aufgerufen, mit dem zweiten Parameter "NewValue". In diesem Parameter kann man nun den neuen Wert angeben.

Beim manuellen Modus muss dabei die Anwendung ".NextStep()" aufrufen, bei welchen ein Parameter übergeben wird, wie groß der neue Wert ist.

Nun ein Wort zur Basislinie:
Die Basislinie ist sozusagen die x-Achse: Dort haben die y-Werte alle 0. Nun kann man mit der Eigenschaft „Baseline“ bestimmen, wie hoch sie über der unteren Kante liegt. Natürlich nur im unskalierten Zustand.

Geraden/Balken:
Um Vergleiche zu ermöglichen habe ich eine Möglichkeit eingebaut eine Gerade anzugeben. Diese Gerade ist entweder horizontal oder vertikal und deren Y- bzw. X-Koordinate wird in jeweils einer IntegerList gespeichert. Da nun der Graph passend in der Vertikalen skaliert wird, werden die Horizontalen Balken in der Höhe skaliert. Leider ist das Feature relativ neu, sodass die horizontalen Gerade in der Grafik leider nicht so einfach zu handhaben sind. Aber die vertikalen gehen.

Wo wir gerade dabei sind: Einfach mit der linken (= horizontal)/rechten (=vertikal) Maustaste auf die Zeichenfläche klicken und schon sind sie da.

Zusätzlich habe ich noch eine kleine Demonstration angehangen.

So sieht das erstellen dynamisch dann aus:
Delphi-Quellcode:
FGraph := TGraph.Create(self);
FGraph.Width := 500;
FGraph.Height := 200;
FGraph.Parent := self;
FGraph.MaxOffset := 10;
FGraph.Interval := 100;
FGraph.OnInterval := OnInterval;
FGraph.GraphColor := clRed;
FGraph.GridColor := clBlue;
FGraph.BackgroundColor := clBlack;
FGraph.BarColor := clGreen;
FGraph.BaseLine := 0;
MfG
xZise
Angehängte Dateien
Dateityp: zip graph_151.zip (216,7 KB, 120x aufgerufen)
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat