Delphi-PRAXiS
Seite 2 von 2     12   

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 GanttSeries-Elemente einfärben (https://www.delphipraxis.net/129705-ganttseries-elemente-einfaerben.html)

Tyrael Y. 24. Feb 2009 14:36

Re: GanttSeries-Elemente einfärben
 
Hm dachte du hast es schon gelöst, oki, mal ein Blick in die Hilfe...


Zitat:

function AddGantt(Const AStart,AEnd,AY: Double; Const AXLabel: String): LongInt;

Beschreibung

Die Funktion AddGantt fügt einen neuen Gantt-Balken zur Reihe hinzu. Jeder Gantt-Balken verfügt über die folgenden Parameter: AStart und AEnd, die Anfangs- und Endkoordinaten des horizontalen Gantt-Balkens. Dabei kann es sich um normale Gleitkommawerte oder Datum-/Uhrzeit-Werte handeln.
AY ist die vertikale Gantt-Balkenkoordinate. Sie können beliebig viele Gantt-Balken mit derselben oder einer anderen vertikalen Koordinate hinzufügen. Die vertikale Koordinate hat normalerweise einen mit Null beginnenden Startwert, doch können Sie einen beliebigen anderen Wert benutzen.

AXLabel entspricht dem zugehörigen Gantt-Balkentext. Dieser wird optional an der vertikalen Achse und an TGanttSeries.Marks als Beschriftung angezeigt.
Sie können Verbindungslinien zwischen Gantt-Balken mit der Eigenschaft TGanttSeries.NextTask zuweisen. Mit dieser Eigenschaft oder durch Aufruf der Methode TChartSeries.ValueColor oder der Methode TGanttBar.AddGanttColor können Sie jedem Gantt-Balken eine spezielle Farbe zuweisen. Diese Funktion liefert den zugehörigen internen Punktindex. Sie können dann über den Index auf diesen Gantt-Balken verweisen. Neu hinzugefügte Punkte werden optional in auf- oder absteigender Reihenfolge nach ihren horizontalen oder vertikalen Koordinaten sortiert. Sie können die Sortierung abschalten, indem Sie die Order-Eigenschaft von XValues und YValues auf den Wert loNone setzen.

guinnes 24. Feb 2009 15:12

Re: GanttSeries-Elemente einfärben
 
Zitat:

Zitat von luckystar85
Beim Add bekomm ich auch nur den Index zurück,....

Was willst du noch mehr ? Das ist der Index, den du benutzen kannst, um auf das Array der ValueColor s zuzugreifen

luckystar85 24. Feb 2009 15:29

Re: GanttSeries-Elemente einfärben
 
Zitat:

Zitat von Tyrael Y.
Hm dachte du hast es schon gelöst, oki, mal ein Blick in die Hilfe...


Zitat:

function AddGantt(Const AStart,AEnd,AY: Double; Const AXLabel: String): LongInt;

Beschreibung

Die Funktion AddGantt fügt einen neuen Gantt-Balken zur Reihe hinzu. Jeder Gantt-Balken verfügt über die folgenden Parameter: AStart und AEnd, die Anfangs- und Endkoordinaten des horizontalen Gantt-Balkens. Dabei kann es sich um normale Gleitkommawerte oder Datum-/Uhrzeit-Werte handeln.
AY ist die vertikale Gantt-Balkenkoordinate. Sie können beliebig viele Gantt-Balken mit derselben oder einer anderen vertikalen Koordinate hinzufügen. Die vertikale Koordinate hat normalerweise einen mit Null beginnenden Startwert, doch können Sie einen beliebigen anderen Wert benutzen.

AXLabel entspricht dem zugehörigen Gantt-Balkentext. Dieser wird optional an der vertikalen Achse und an TGanttSeries.Marks als Beschriftung angezeigt.
Sie können Verbindungslinien zwischen Gantt-Balken mit der Eigenschaft TGanttSeries.NextTask zuweisen. Mit dieser Eigenschaft oder durch Aufruf der Methode TChartSeries.ValueColor oder der Methode TGanttBar.AddGanttColor können Sie jedem Gantt-Balken eine spezielle Farbe zuweisen. Diese Funktion liefert den zugehörigen internen Punktindex. Sie können dann über den Index auf diesen Gantt-Balken verweisen. Neu hinzugefügte Punkte werden optional in auf- oder absteigender Reihenfolge nach ihren horizontalen oder vertikalen Koordinaten sortiert. Sie können die Sortierung abschalten, indem Sie die Order-Eigenschaft von XValues und YValues auf den Wert loNone setzen.

Das klingt ja schon mal richtig gut. Bloß mit Hilfe welcher Methode ist das möglich. Die zurück gegebenen Indizes habe ich ja schon in einer IntegerList gespeichert und der ComboBox zugewiesen. Jetzt ist nur die Frage mit Hilfe welcher Methode kann ich denn auf die Referenzen der Serie zugreifen?

guinnes 24. Feb 2009 15:33

Re: GanttSeries-Elemente einfärben
 
Hab ich das richtig verstanden, du willst mehrere, zusammenhängende Balken gleichzeitig färben ?

Tyrael Y. 24. Feb 2009 15:40

Re: GanttSeries-Elemente einfärben
 
Delphi-Quellcode:
...
  einIndex := myGantSeries.addGantt(....);
...
  meinBalken := myChart.Series[einIndex];
...
//jetzt aber zackig fertig programmieren ;)

luckystar85 24. Feb 2009 15:42

Re: GanttSeries-Elemente einfärben
 
Zitat:

Zitat von Tyrael Y.
Delphi-Quellcode:
...
  einIndex := myGantSeries.addGantt(....);
...
  meinBalken := myChart.Series[einIndex];
...
//jetzt aber zackig fertig programmieren ;)

Das ist ja denn nicht der Balken, sondern der Pointer auf die Serie (Sammelung von Balken). Ich habe immer noch einen Chart1.SeriesCount von 1 wenn ich mit AddGantt einen Balken hinzugefügt habe. Bei Chart1.Series habe ich ja nur die GanttSeries drin. Aber Lösung ist trotzdem in Sicht:
Sorry, jetzt habe ich es. Ich wusste nicht das man auch direkt auf der Serie die Farbe setzen kann. Ich dachte man muss es explizit dem Balken setzen. Damit sollte es gehen. Ich werde es mal testen.

Delphi-Quellcode:
ActionSeries.ValueColor[CurrentAction.CurrentValueIndex] := ( Not ColorToRGB(ActionSeries.ValueColor[CurrentAction.CurrentValueIndex]) ) And $00FFFFFF;

guinnes 24. Feb 2009 15:58

Re: GanttSeries-Elemente einfärben
 
Zitat:

Zitat von luckystar85
Das ist ja denn nicht der Balken, sondern der Pointer auf die Serie (Sammelung von Balken).

Der Index, den du bei add zurückkriegst, ist der einzelne Balken
Zitat:

Ich habe immer noch einen Chart1.SeriesCount von 1 wenn ich mit AddGantt einen Balken hinzugefügt habe.
Du hast ja auch nur eine Serie. ValueColor ist ein Array, in dem die Farbe jedes einzelnen Punktes gespeichert ist. Der Index für dieses Array ist der Wert, den Add zurückgibt. Den nach TObject casten und in die Combobox und gut ist


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:45 Uhr.
Seite 2 von 2     12   

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