Question
I am trying your component TphGant. I am using Delphi7, and using native component. I did an example. I have gant and a table with two fields. Name and duration. i am able to put these names to the gant and display duration of these names. The user can change duration with the mouse and I need to change duration in my table. but I am not able to iterate from the first TphDataEntity_Ganttime to the last in a row.
How can I iterate over my rows’ entities?
Answer
Each GantRow has a datalist that holds the drawing layers. Each drawing layer has a list that holds the time items. You can iterate them like this:
procedure TForm1.Button2Click(Sender: TObject);
var
i,ii:integer;
begin
for i:=0 to phGant1.RowList.Count-1 do
begin
for ii:=0 to phGant1.RowList.Rows[i].DataLists.Items[0].Count-1 do
begin
(phGant1.RowList.Rows[i].DataLists.Items[0].Items[ii] as TphDataEntity_GantTime).Start:=
end;
end;
end;
The same code for ActiveX in VB:
Dim ti As IphDataEntity_GantTime2
For i = 0 To phGantX1.RowList.Count – 1 ‘ loop over all gantt rows
For ii = 0 To phGantX1.RowList.GantRow(i).DataLists.Count – 1 ‘ loop over all layers in gantt row
For iii = 0 To phGantX1.RowList.GantRow(i).DataLists.DataList(ii).Count – 1 ‘loop over all time items
Set ti = phGantX1.RowList.GantRow(i).DataLists.DataList(ii).Items(iii)
ti.Start = ti.Start + 1
ti.Stop = ti.Stop + 1
Next iii
Next ii
Next i