Attached here is the table shown in the screenshot Grid.png
Attached the TestComplete Object browser.png. I am seeing that RowCount is 4, why it shows 4 it should be 3. Also I am seeing it captured some cells which do not have any elements.
I already talked to developer there are no hidden rows
HTML tables like that aren't always a "grid" object per say. So, there are 4 rows in the HTML table but one of those rows may contain something entirely different. It would be interesting to see what TestComplete sees in those cells in row 1... could be that they are place holders, filters taht are non-visible, etc. Not that they are "hidden" deliberately by the developer, but the component that they are using for that table may have some other <tr> tags in them that generate a row.
Basically, keep in mind that "RowCount" is a constructed value based upon the content of the table, not necessarily based upon what is visible on screen.
Try recording a short test and click around on the two rows and some of the other objects that are in your screenshot. Then you'll see what TestComplete thinks their names are and that may give you some more clues.
Are you using a third party addin to generate the grid ? If so, the layout of the underlying table can change based on the settings you put in the markup. e.g. I work with DevX, which has a setting for AdaptivityMode. Set it as hidden HideDataCells and DevX puts an empty column at the end. Set it to HideDataCellsWindowLimit and DevX puts a visible=false cell with colspan the entire table in the top. Set it to show filter and another row is inserted at the top. TC can only return you what the actual HTML markup that these tools generate is created and in this case it's 4 rows. You will either need to remember and adjust how many lines are before the first visible row and add that to your row accordingly or use some FindChild/FindChildEx etc to find the rowindex of one of the cells you are looking for and work with that rather than the actual row number. Related discussions:
why dont you print contentText or innerText of each cell of 4th row to see what is there. I suspect there is a overlap, thats the reason it may be showing 4 as count including header.
Just something like:
for k in range(0,round(tblrowCnt)):
wndChild2 = tblchkpostsearch.Cell(k+1,0).Panel(1);