Forum Discussion
Dmitry_Nikolaev
Staff
15 years agoHello Markus,
Here is an example:
procedure ClickItem(vst, row, col);
var i, X, Y: Integer;
text: String;
node: OleObject;
begin
i := 0;
X := vst.Header.Columns.Items(col).Left + 25;
Y := 0;
node := vst.GetFirst(false);
while (aqObject.IsSupported(node, 'InstancePtr')) do
begin
if (i = row) then
begin
Y := Y + node.TotalHeight/2;
break;
end;
Y := Y + node.TotalHeight;
i := i + 1;
node := vst.GetNext(node, false);
end;
node := vst.GetNodeAt(X, Y);
if (aqObject.IsSupported(node, 'InstancePtr')) then
begin
text := vst.GetText(node, col);
Y := Y + vst.Header.Height;
Log.LockEvents;
vst.Click(X, Y);
Log.UnlockEvents;
Log.Event('The "' + text + '" node was clicked.');
end;
end;
procedure ClickLine(vst, line);
begin
ClickItem(vst, line, 0);
end;
procedure Test();
var vst: OleObject;
begin
vst := {...};
ClickItem(vst, 12, 3);
// ...
ClickLine(vst, 4);
// ...
end;