![]() |
GanttSeries-Elemente einfärben
HI,
ich habe in meinem TChart eine TGanttSeries wo ich mehrere Aktion verbunden darstelle. Dazu gibt es daneben aber eine ComboxBox wo alle Aktionen auch noch enthalten sind. Jetzt möchte ich, dass wenn ich in der ComboBox eine Aktion auswähle der entsprechende Balken des GanttSeries farblich eingefärbt wird. Das gleiche habe ich schon im OnClick gemacht wo dann in der ComboBox entsprechenend die Aktion ausgewählt wird.
Delphi-Quellcode:
Das funktoniert sowie auch richtig gut, nur habe ich jetzt das Problem wie kann ich im OnChange der ComboBox auf die einzelnen Elemente der GanttSeries zugreifen? Im OnClick auf das Chart bekomm ich das übergeben, aber von außen? Ich habe gesucht und auch die OH befragt, aber keine Lösung gefunden. Habt ihr eine Idee?
procedure TActionSchedule.Chart1ClickSeries(Sender: TCustomChart; Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Begin If ( Assigned(Series) ) Then TGanttSeries(Series).ValueColor[ValueIndex] := ( Not ColorToRGB(TGanttSeries(Series).ValueColor[ValueIndex]) ) And $00FFFFFF; End; |
Re: GanttSeries-Elemente einfärben
Du hast doch die Antwort scho selbst mehr oder weniger geliefert. ;)
Hänge an jeden Combobox Eintrag die Referenz zu der dementsprechenden Series. Wird eins ausgewählt dann ruf deine Methode zum einfärben mit der Referenz der Series als Parameter auf...fettisch. |
Re: GanttSeries-Elemente einfärben
Das hatte ich mir auch gedacht mit AddObject das zufüllen, aber leider habe ich keinen Zugriff auf die einzelnen Elemente. Beim Add bekomm ich auch nur den Index zurück, aber ich kann nicht auf die Liste zugreifen (jedenfalls habe keine Möglichkeit gefunden).
|
Re: GanttSeries-Elemente einfärben
Der Index reicht doch für den Zugriff, oder hast du mehrere Gantt-Serien ?
|
Re: GanttSeries-Elemente einfärben
Nein ich habe nur eine GanttSeries, aber ich habe keinen Zugriff auf die Elemente der GanttSeries (jedenfalls habe ich die entsprechende Property nicht gefunden um darauf zuzugreifen). Wenn es dafür eine Eigenschaft gibt, ist das Problem schnell gelöst. Gibt es denn eine?
|
Re: GanttSeries-Elemente einfärben
Wenn ich dein Problem richtig verstanden habe, fehlt Dir der Zugriff auf die Series des Chart. Da kommst Du über TChart.Series[x] dran. Dann kannst Du Dir eine lokale Referenz basteln.
Delphi-Quellcode:
Ist jetzt ungetestet, kann auch sein, dass Du mit as TGanttSeries drankommst.
var gs : TGanttSeries;
gs := TGanttSeries(Chart1.Series[i]); Grüße, Messie |
Re: GanttSeries-Elemente einfärben
Oder statt harten eine weichen Cast
Delphi-Quellcode:
gs := (Chart1.Series[i] as TGanttSeries);
|
Re: GanttSeries-Elemente einfärben
Du färbst in deinem Beispiel den Gantt mit ValueColor[ValueIndex] ein, warum machst du das nicht genau so mit dem Index, den du beim Add erhälts ? Also ValueColor[Integer(deine ComboBox.Items[DeineComboBoy.ItemIndex].Objects)] := WasAuchImmer;
|
Re: GanttSeries-Elemente einfärben
Zitat:
Zitat:
|
Re: GanttSeries-Elemente einfärben
Liste der Anhänge anzeigen (Anzahl: 1)
Im angehängtem Bild ist ein Beispiel für ein TChart mit Gantt. Der rote Rahmen ist die GanttSeries und der blaue Rahmen ist der Balken den ich einfärben möchte. Wie kann ich auf diesen von außeen zugreifen. Im OnClick kein Problem, aber sonst ???
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 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