uses DPSCAD_TLB;
Type
TTermDataType = (td_ExtComp, td_ExtWireNo, td_ExtCable, td_ExtSignal, td_OutConn, td_InConn, td_InSignal, td_InCable, td_InWireNo, td_InComp, td_JumperLink);
var
ListOfTerminals : IPCsList;
i, p : integer;
TermName : IPCsSymbol;
ASymbols : IPCsSymbols;
EmptyStr, TempStr : string;
begin
{check if we're connected to Automation}
if CheckConnection() then // (See function here)
begin
{example #1 : using IPCsList}
{create a IPCsList of all terminals in correct active project}
ListOfTerminals := PCsApplication.ActiveDocument.Drawing.Lists.CreateTerminalList(EmptyStr);
{runningt through each terminal}
for i := 0 to ListOfTerminals.Count - 1 do
begin
{get symbol from IPCsList and put it in variable TermName (IPCsSymbol)
by using an IPCsList-items GetDataSymbol-method}
ListOfTerminals.Item[i].GetDataSymbol(integer(td_InConn),0,TermName,IndexTerm);
{valid terminal and terminal have connections...}
if ((TermName <> nil) and (TermName.Connections.Count > 0)) then
begin
TempStr := 'Terminalname=' + TermName.FullName + ' Connection=';
for p := 0 to TermName.Connections.Count -1 do
case TermName.Connections[p].IOStatus.MainType of
mt_None : ShowMessage(TempStr + IntToStr(p) + ' is ' +'None');
mt_Output : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Output');
mt_Input : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Input');
end;
end;
end;
{example #1 : end}
{example #2 : using Symbols.Count}
ASymbols := PCsApplication.ActiveDocument.ActivePage.Symbols;
for i := 0 to ASymbols.Count -1 do
begin
TermName := ASymbols.Item[i];
{valid terminal and terminal have connections...}
if ((TermName <> nil) and (TermName.Connections.Count > 0)) then
begin
TempStr := 'Terminalname=' + TermName.FullName + ' Connection=';
for p := 0 to TermName.Connections.Count -1 do
case TermName.Connections[p].IOStatus.MainType of
mt_None : ShowMessage(TempStr + IntToStr(p) + ' is ' +'None');
mt_Output : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Output');
mt_Input : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Input');
end;
end;
end;
{example #2 : end}
end;
end;
Type
TTermDataType = (td_ExtComp, td_ExtWireNo, td_ExtCable, td_ExtSignal, td_OutConn, td_InConn, td_InSignal, td_InCable, td_InWireNo, td_InComp, td_JumperLink);
var
ListOfTerminals : IPCsList;
i, p : integer;
TermName : IPCsSymbol;
ASymbols : IPCsSymbols;
EmptyStr, TempStr : string;
begin
{check if we're connected to Automation}
if CheckConnection() then // (See function here)
begin
{example #1 : using IPCsList}
{create a IPCsList of all terminals in correct active project}
ListOfTerminals := PCsApplication.ActiveDocument.Drawing.Lists.CreateTerminalList(EmptyStr);
{runningt through each terminal}
for i := 0 to ListOfTerminals.Count - 1 do
begin
{get symbol from IPCsList and put it in variable TermName (IPCsSymbol)
by using an IPCsList-items GetDataSymbol-method}
ListOfTerminals.Item[i].GetDataSymbol(integer(td_InConn),0,TermName,IndexTerm);
{valid terminal and terminal have connections...}
if ((TermName <> nil) and (TermName.Connections.Count > 0)) then
begin
TempStr := 'Terminalname=' + TermName.FullName + ' Connection=';
for p := 0 to TermName.Connections.Count -1 do
case TermName.Connections[p].IOStatus.MainType of
mt_None : ShowMessage(TempStr + IntToStr(p) + ' is ' +'None');
mt_Output : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Output');
mt_Input : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Input');
end;
end;
end;
{example #1 : end}
{example #2 : using Symbols.Count}
ASymbols := PCsApplication.ActiveDocument.ActivePage.Symbols;
for i := 0 to ASymbols.Count -1 do
begin
TermName := ASymbols.Item[i];
{valid terminal and terminal have connections...}
if ((TermName <> nil) and (TermName.Connections.Count > 0)) then
begin
TempStr := 'Terminalname=' + TermName.FullName + ' Connection=';
for p := 0 to TermName.Connections.Count -1 do
case TermName.Connections[p].IOStatus.MainType of
mt_None : ShowMessage(TempStr + IntToStr(p) + ' is ' +'None');
mt_Output : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Output');
mt_Input : ShowMessage(TempStr + IntToStr(p) + ' is ' +'Input');
end;
end;
end;
{example #2 : end}
end;
end;