| || |
Accessing a Delphi TStringGrid with Robot
User (firstname.lastname@example.org) posted:
Stuart, there are a number of possible causes AND work arounds.
Each Robot version supports specific versions of Delphi to varying
Depending on the version of Delphi (and Robot), adding the SQA OCX to your
forms may or may not provide additional "visibility".
Support for Delphi has been spotty. They started supporting Delphi
version 2.0 (?), then stopped at version 4.0. See the release notes
("readme") for your version of Robot for details.
I used Robot to test a Delphi application that was being ported from
Delphi 1.0 16-bit to Delphi 5.0 32-bit using Robot 6.1.1 (neither of which
is among the "supported" versions). Robot was able to identify many
Delphi 1.0 controls, and MOST Delphi 5.0 controls.
The main exceptions (for both versions of Delphi) were "soft" or
"painted-on" controls (not real Windows controls, no window handle),
tables (e.g. TTF16.WndClass) and grids (e.g., TOvcTable).
I mapped the tables and grids can be mapped to the "Generic" Object Type.
This made it possible to navigate through them and input values, using
keystrokes (InputKeys). Fortunately, Copy was enabled for the grids and
tables, so I was also able to capture their contents via the Window
Clipboard. The grids had to be copied one cell at a time, but the tables
had a "Copy to Clipboard" button that copied the entire table.
For the Delphi 1.0 version, I had to map the "TTabbedNotebook" tab control
as "Generic" and use case logic to identify the correct coords for each
For the Delphi 5.0 version, the "TPageControl" replaced TTabbedNotebook,
and this new control was recognized as a "TabControl" (don't recall if I
had to map it manually). I was also able to convince the developer to
replace ONE of the painted-on controls with a static control that does the
same thing, which Robot was able to recognize. There was one GroupBox
control (class "TGroupBox") used to display file attributes in a FileOpen
dialog that Robot could not capture the text for (worked around it by
adding a MsgBox prompting tester to verify contents manually).
The readme.htm for Robot 2000.02.10 lists "Testing Delphi applications" as
one of the things that are no longer supported. However, I get the same
level of visibility as with Robot 6.1.1 without the SQA OCX.
I have not checked Robot 2002 to see if they have started supporting