// shows all items and folder of the selected OPC serverprocedure GetAllItems(Browser: TdOPCBrowser; ItemList: TStrings; Level: integer = 0);
var
i : integer;
Items : TdOPCBrowseItems;
BrowseItem : TdOPCBrowseItem;
LevelStr : string;
begin
Browser.Browse; // get all Branches and Items in this level from OPC ServerItems := TdOPCBrowseItems.Create; // create a new list
Items.Assign(Browser.Items); // save and copy Items in new Listfor i := 0 to Level do
LevelStr := LevelStr +' '; // create empty string to show level
ItemList.Add(LevelStr+'Folder: '+ Browser.CurrentPosition.Name); // Show name of folder
ItemList.Add(LevelStr+'(');
for i := 0 to Items.Count-1 do// for all items in current pathbegin
BrowseItem := Items[i];
if BrowseItem.IsItem then// if browse item is not a folder
ItemList.Add(LevelStr+' '+BrowseItem.ItemName) // add Itemid to listelsebegin// if it is a folderif Browser.MoveDown(BrowseItem) then// one Level downbegin
GetAllItems(Browser,ItemList,Level+1); // recursive call
Browser.MoveUp; // back to old Levelend;
end;
end;
ItemList.Add(LevelStr+')');
Items.Free;
end;