Forum Discussion
hulig4n
14 years agoNew Contributor
Found a solution:
procedure LoopItems(TV: OleVariant); forward;
procedure LoopChildItems(ItemColl, Depth: OleVariant); forward;
procedure Main;
var p: OleVariant;
begin
p:= NameMapping.Sys.Bir.dlgReportBIRPIS.paDialog.paClient.paClientLeft.tvPrintReport;
LoopItems(p);
end;
procedure LoopItems(TV: OleVariant);
begin
LoopChildItems(TV.wItems, 0);
end;
procedure LoopChildItems(ItemColl, Depth: OleVariant);
var i, j, s, indent: OleVariant;
begin
for i:=0 to ItemColl.Count-1 do
begin
// Forms an indent to denote subitems
indent := '';
for j:=0 to Depth-1 do
indent := indent + ' ';
// Obtains item caption
s := indent + ItemColl.Item.Text;
Log.Message(s);
if ItemColl.Item.Items <> nil then
LoopChildItems(ItemColl.Item.Items, Depth+1)
else
ItemColl.Item.Click();
end;
end;
Thx anyway.
procedure LoopItems(TV: OleVariant); forward;
procedure LoopChildItems(ItemColl, Depth: OleVariant); forward;
procedure Main;
var p: OleVariant;
begin
p:= NameMapping.Sys.Bir.dlgReportBIRPIS.paDialog.paClient.paClientLeft.tvPrintReport;
LoopItems(p);
end;
procedure LoopItems(TV: OleVariant);
begin
LoopChildItems(TV.wItems, 0);
end;
procedure LoopChildItems(ItemColl, Depth: OleVariant);
var i, j, s, indent: OleVariant;
begin
for i:=0 to ItemColl.Count-1 do
begin
// Forms an indent to denote subitems
indent := '';
for j:=0 to Depth-1 do
indent := indent + ' ';
// Obtains item caption
s := indent + ItemColl.Item.Text;
Log.Message(s);
if ItemColl.Item.Items <> nil then
LoopChildItems(ItemColl.Item.Items, Depth+1)
else
ItemColl.Item.Click();
end;
end;
Thx anyway.
Related Content
- 13 years agovthomeschoolmom
- 3 years agoliki7411
- 5 years agogdave
Recent Discussions
- 3 hours agoSubhraDas
- 9 hours agoJacobjacob44