Хаб вчера успешно победил.
(Правда чуть "отверточным способом" без полного разбора полетов в секции Sub)
Несколько раз посыпал голову пеплом нашел несколько забытых багов (профиксил).
Коплю вопросы к знатокам.
Всем привет.
Зы
Кому интересно вот код
//Обработка секции SUB
For I:=0 to ElementList.Count-1 do
begin
ET:=TSElement(ElementList.Objects[i]);
ID:=ElementList[i];
N:=ET.Name;
if ET.TypeSUB<>'' Then
begin
// Временно спец обработка для 'Hub'
if ET.Name='Hub' Then begin
//Исходящие точки
if ET.LinkList.Count>0 then
For J:=0 to ET.LinkList.count-1 do
begin
New(C);
C^.Name:='onEvent'+IntToStr(J+1);
C^.VName:='';
C^.Rem:='';
C^.Option:='';
C^.PointType:=ptOn;
Et.PointList.Add(C);
end;
K:=IndexOfParamItem('InCount',ET.ParamList);
If K<>-1 then begin
K:= StrToInt(PSParam(ET.ParamList[K])^.Data);
//Входящие точки
For J:=0 to k do begin
New(C);
C^.Name:='doEvent'+IntToStr(J+1);
C^.VName:='';
C^.Rem:='';
C^.Option:='';
C^.PointType:=ptDo;
Et.PointList.Add(C);
end;
end else
For k:=0 to ElementList.count-1 do
begin
CE:=TSElement(ElementList.Objects[k]);
if CE.LinkList.Count>0 then
For J:=0 to CE.LinkList.count-1 do begin
L:=PSLink( CE.LinkList[J]);
If L^.Id = ID then
begin
New(C);
///Writeln(L^.PointTO);
C^.Name:=L^.PointTO;
C^.VName:='';
C^.Rem:='';
C^.Option:='';
C^.PointType:=ptDo;
Et.PointList.Add(C);
end;
end;
end;;
end;
end // 'Hub'
end;