Универсальный и Агности c Решение будет: GetTextLocation
. Вы вызываете метод в таблице (возможно, также определяете прямоугольник поиска), и метод сообщит вам координаты прямоугольника, в котором находится текст. В основном это основано на распознавании текста, поэтому оно будет очень нестабильным: Просто забудьте об этом, редко работает :)
Лучшее решение будет:
x = CINt(SwfTable("Table").GetCellProperty 0, "COLNAME", "x")
y = CINt(SwfTable("Table").GetCellProperty 0, "COLNAME", "y")
Эти являются coodrinates ячейки в первой строке в вашей колонке. Теперь нам просто нужно переместиться в центр заголовка этой колонки. Это просто другой расчет
' Move Right
x = x + 20
' Move Up
y = y - 20
Это может сработать, но оно все еще очень грубое и может стать легко нестабильным. С помощью того же метода вы можете получить свойство высоты и ширины ячейки и использовать его для вычисления центра заголовка:
x = x + (width / 2)
y = y - (height / 2)
Намного лучше, но подразумевает, что ваша ячейка заголовка имеет одинаковый размер как ваши ячейки таблицы.
Если это не так, вы должны использовать методы объекта и с помощью некоторого обратного инжиниринга получить ссылку на столбцы таблицы и выполнить некоторые вычисления.
В заключение : речь идет о навигации между прямоугольниками и базовой c геометрией. Вы можете стать намного более изощренным, и вам даже не нужно использовать методы объекта, просто нарисуйте его и поиграйте с ним.
Документация для GetCellProperty
Почти забыли: когда вы просто укажите координаты:
SwfTable.Click x, y
Это относительные координаты, поэтому вам не нужно добавлять их в abs_x и abs_y.