Не находит объект
#21
Отправлено 30 марта 2011 - 10:02
Действительно, ничего криминального не вижу ! (но это пока ! Будем искать !)
PS
Единственно, заметил, что в свойствах объекта нет "Debug Agent".. Хотя это, вроде бы не должно повлиять..
Но все равно можно попробовать активировать его..
#22
Отправлено 30 марта 2011 - 11:28
#23
Отправлено 30 марта 2011 - 11:37
Можно же захайлайтить (подсветить) и тот и другой объект, чтобы посмотреть где они в интерфейсе и чё обозначают..?
#24
Отправлено 30 марта 2011 - 11:45
Кстати, не просто попросить, а вообще, правила хорошего тона программирования: называть объекты осмысленно, а не оставлять так, как они были названы автоматом. Найдите кто это сделал и раскажите о своей жизни автоматизаторской )))А если сходить к программистам и попросить их назвать этот объект поуникальней? :)
#25
Отправлено 31 марта 2011 - 01:44
А как насчет того, что это может быть глюк TC? Невозможно создать объекты с одним именем на одном уровне.
Открыв исходники вижу только одну панель Panel, а TC отображает две.
#26
Отправлено 31 марта 2011 - 03:55
У TC, конечно, всяко бывает, но чтобы он панельки создавал....я сталкивалась со случаями, когда уже закрытые формочки продолжали висеть в памяти TC и новые появлялись с тем же именем, но они индексировались, а в вашем случае...сразу после запуска TC воспроизводится? Может тоже остаточная информация?Мое решение неудачное, перезакрытие окна может тянуться до бесконечности :(
А как насчет того, что это может быть глюк TC? Невозможно создать объекты с одним именем на одном уровне.
Открыв исходники вижу только одну панель Panel, а TC отображает две.
#27
Отправлено 31 марта 2011 - 03:59
Уже сто раз все перезапускала, и проект закрывала, в надежде - сейчас создам новый и кошмар пропадет, но нет )))) все как и былоУ TC, конечно, всяко бывает, но чтобы он панельки создавал....я сталкивалась со случаями, когда уже закрытые формочки продолжали висеть в памяти TC и новые появлялись с тем же именем, но они индексировались, а в вашем случае...сразу после запуска TC воспроизводится? Может тоже остаточная информация?
Даже установила все на другой машине!
#28
Отправлено 31 марта 2011 - 04:43
Тогда чтобы не гадать, можно сделать так: у формы по FindAllChildren найти массив всех дочерних объектов, в этом массиве найти объект с Name "VCLObject('...')", считать у него FullName, через Evaluate преобразовать его в OleVariant и потом уже если он exists - продолжать с ним работу.(это конечно не хорошо, теряем производительность, но должно работать)Уже сто раз все перезапускала, и проект закрывала, в надежде - сейчас создам новый и кошмар пропадет, но нет )))) все как и было
Даже установила все на другой машине!
#29
Отправлено 31 марта 2011 - 04:49
#30
Отправлено 31 марта 2011 - 04:53
Извиняюсь, нужно 2 критерия, еще ChildCount > 0, а то он просто отберет 1й по списку.Тогда чтобы не гадать, можно сделать так: у формы по FindAllChildren найти массив всех дочерних объектов, в этом массиве найти объект с Name "VCLObject('...')", считать у него FullName, через Evaluate преобразовать его в OleVariant и потом уже если он exists - продолжать с ним работу.(это конечно не хорошо, теряем производительность, но должно работать)
#31
Отправлено 31 марта 2011 - 07:39
#32
Отправлено 01 апреля 2011 - 04:38
Всем спасибо!
#33
Отправлено 08 июня 2011 - 15:45
Разработка говорит, что это динамическая генерация интерфейса на лету. Имена совпадают, так как берутся из шаблонов.
Пока решил проблему таким способом - для каждого нового окна заново находим его (как звучит-то)) )
var Hndl : OleVariant;//дескриптор curWin : OleVariant; // указатель на текущее окно begin hndl := Win32API.GetForegroundWindow; //получаем дескриптор текущего окна curWin := Sys.WindowFromHandle(hndl);//находим само окно для дальнейшей работы
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных