Программное установление свойств
#1
Отправлено 14 июня 2005 - 12:16
В программе на Delphi имеется элемент PageControl с несколькими TabSheet.
Хочу из TestComplete переключить активный TabSheet.
По некоторым причинам
w.PageControl.Click('Параметры');
мне не подходит.
Необходимо сделать это через свойства PageControl.
В Delphi можно сделать так:
PageControl.ActivePage := ParamsSheet;
Пытаюсь по аналогии сделать в TestComplete:
w.PageControl.ActivePage := w.ParamsSheet;
Но не проходит - Invalid variant type conversion property: ActivePage
Подскажите выход.
Заранее благодарен.
#2
Отправлено 14 июня 2005 - 13:27
Попробуйте использовать метод SetActivePage:
w.PageControl.SetActivePage(w.ParamsSheet);
Дмитрий
#3
Отправлено 14 июня 2005 - 13:39
Закладка действительно переключается, но по непонятным мне причинам
после этого не происходит действий, выполняемых Delphi-программой при переключении закладки (не срабатывает обработка событий), т.е. результат
w.PageControl.Click('Параметры');
или
w.PageControl.SetActivePage(w.ParamsSheet);
отличается от того, если просто переключить мышкой закладку.
С чем это может быть связано?
#4
Отправлено 14 июня 2005 - 16:58
#5
Отправлено 15 июня 2005 - 07:26
Вот код функции, предложенной на официальной ньюсгруппе TestComplete.
procedure SetActiveTab(tabControl, page); var i, item; begin for i:=0 to tabControl.tabs.Capacity - 1 do begin if tabControl.ActivePage.Caption = page then begin Log.Event('Tab "' + page + '" is selected'); exit; end; Log.LockEvents; Sys.Keys('^[Tab]'); Log.UnlockEvents; end; Log.Error('Tab "' + page + '"is not found'); end; ... SetActiveTab(w.pagecontrol1, 'My Second Page'); ...
Дмитрий
#6 Гость_Guest_*
Отправлено 15 июня 2005 - 11:09
Да, действительно, в чистом виде сочетание Ctrl-Tab работает, но к сожалению, в тестируемом приложении с помощью этого сочетания переключаются MDI-Child окна, поверх которых находится модальное окно с PageControl. Приходится делать активным заголовок закладки и перемещаться при помощи стрелок... но это уже мои проблемы.
Вопрос в том, где еще может проявляться подобное несрабатывание обработчиков кроме обнаруженного примера? И является ли, в общем, использование сочетаний клавиш более надежным вмеcто более удобного Click?
#7
Отправлено 15 июня 2005 - 11:14
#8
Отправлено 20 июня 2005 - 12:42
Обработчики могут не сработать у тех контролов, разработчики которых не позаботились (случайно или преднамерено) о вызове событий при выполнении соответствующих нативных функций.Вопрос в том, где еще может проявляться подобное несрабатывание обработчиков кроме обнаруженного примера? И является ли, в общем, использование сочетаний клавиш более надежным вмеcто более удобного Click?
Вообще, конечно, наиболее правильным является настоящий Click, то есть помещение указателя мыши над контролом и нажатие ее кнопки. Но, к сожалению, с некоторыми контролами реализовать это не так просто. Главная проблема - это правильно определить координаты точки экрана, на которую нужно кликнуть. Как определить координаты заголовка нужного таба я, к сожалению, не знаю.
Дмитрий
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных