ja, seit ein par Tagen schaue ich mir jedes einzelne Beispiel an.
Sehr viel habe ich ja bereits herausgefunden. Ich brauche nur noch die zwei
Sachen: wie kann ich durch die Liste der Items durchlaufen und dabei das aktive Item bekommen.
Und wie kann ich durch die Bars die jedes Item hat durchlaufen und das aktive Bar bekommen.
Sicherlich könnte ich mir ein mehrdimensionales Array parallel bilden wenn ich die Items und dessen Bars
erstelle und das jeweilige
Handle in das Array schreiben, doch das halte ich für unsinnig. Das Teil ist
so mächtig, es wird sicherlich mit Bordmitteln gehen.
Beim erstellen der Items-Liste und dessen Bars, habe ich jeder Bar die ID aus der Datenbank mitgegeben.
Wenn ich die ID der Bar habe, komme ich auf die Properties über diesen Weg an das richtige Bar Object:
Code:
procedure TfrTerminplan.ChangeBarColor(id:Integer; aColor:TColor);
begin
G2antt1.Items.ItemBar[0,Format('<%d>',[id]),EXG2ANTTLib_TLB.exBarColor] := OleVariant(aColor);
end;
Nun möchte ich wenn der User auf ein Item klickt, das Chart an den Anfang der ersten Bar scrollt.
Das
Handle des gerade angeklickten Item bekomme ich so:
Code:
item := G2antt1.ItemFromPoint[-1,-1,c,hit];
if ((item>0)and(c=0))then
begin
end;
Jetzt gibt es noch eine Möglichkeit auf die erste und nächste Bar des Items zu kommen.
Doch leider bekomme ich kein Object vom Typ Bar sondern wieder ein
Handle. Mir fehlt
also die Möglichkeit aus dem
Handle ein Object zu machen.
Code:
G2antt1.Items.FirstItemBar[item]
G2antt1.Items.NextItemBar[item,Key]
Gruß Kostas