Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Обработать класс TStringGrid (http://forum.oszone.net/showthread.php?t=151914)

Frost_Imp 30-09-2009 15:45 1231264

Обработать класс TStringGrid
 
Вложений: 1
Всем доброго времени суток!
Прошу помочь с проблемой следующего характера...
Есть программа, осуществляющая поиск. Результаты поиска представлены в виде таблицы класса TStringGrid. Результатов может быть от одного и до (в теории =) ) бесконечности. Нужно на каждой строке результата сделать ENTER ну и обработать дальше, не суть. Трабла в том, что средствами AutoIT v3 Info я не могу видеть разницу между строкой со вторым, например, результатом и строкой с третьим результатом. Другими словами, если я нахожусь в первой строке и при нажатии на кнопку down ЧТО-ТО изменилось - ништяк, есть еще один результат. Не изменилось - ну на нет и суда нет, делаем какие-то другие вещи.
Есть идеи, как можно в этом контроле понять, где 1 строка, а где вторая.

Sp01LeR 30-09-2009 19:42 1231413

Твой скриншот ниочем не говорит...
Лучше скопируй сюда текст с вкладки "Summary" окна AutoIT v3 Info.

amel27 01-10-2009 06:15 1231695

Frost_Imp, "T*" - контролы Delphi, автоматизировать их проблематично , т.к. обычно не обрабатывают даже стандартные сообщения, хотя зависит от версии компоненты - надо проверять... вопрос уже поднимался, например тут: Получение информации из нестандартных контроллов. В крайнем случае, для определения того, что "ЧТО-ТО изменилось" можно использовать ф-ции "Pixel*()".

Frost_Imp 01-10-2009 11:35 1231844

Sp01LeR, вот данные об окне
>>>> Window <<<<
Title: Д-Информ
Class: TFormMain
Position: 1, 1
Size: 1168, 1020
Style: 0x16CF0000
ExStyle: 0x00010100
Handle: 0x00050884

>>>> Control <<<<
Class: TStringGrid
Instance: 1
ClassnameNN: TStringGrid1
Advanced (Class): [CLASS:TStringGrid; INSTANCE:1]
ID: 264338
Text:
Position: 0, 38
Size: 1160, 948
ControlClick Coords: 1014, 371
Style: 0x54110000
ExStyle: 0x00000200
Handle: 0x00040892

>>>> Mouse <<<<
Position: 1014, 409
Cursor ID: 2
Color: 0xFFFFFF

>>>> StatusBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<

amel27, думал о PixelCheckSumm... Не подходит, сложно анализировать

Sp01LeR 01-10-2009 14:38 1231933

PixelCheckSumm() очень грузит "камень", для Gui-форм лучше использовать PixelGetColor(), но тоже придется много анализировать...

Все-таки, по-моему, самым простым способом будет разворачивание окна, вычисление нужных коодинат в области Class: TStringGrid и использование Send(), MouseClick(), MouseWheel(), MouseGetPos(), MouseMove() и т.д.

Frost_Imp 01-10-2009 14:49 1231940

Цитата:

Цитата Sp01LeR
PixelCheckSumm() очень грузит "камень" »

Ну, у меня в нескольких приложениях есть чек сумм. Если поле анализа небольшое - потеря в скорости не заметна

r35p3ct 06-10-2009 22:47 1236274

Frost_Imp, попробуй WinSpy, AutoIT v3 Info показывал TdfDBGrid, а WinSpy -TDBGridInplaceEdit.


Время: 10:54.

Время: 10:54.
© OSzone.net 2001-