Перейти к содержимому

Фотография

Помогите с SetContext


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Эдмонд Уэллс

Эдмонд Уэллс

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:n n n

Отправлено 31 марта 2006 - 07:25

Произошла проблемка такая: в тестируемой программе заголовок одного из окон формируется автоматически, и состоит из двух частей. Каким образом можно использовать setcontext не по caption=..., а по caption содержит (к примеру, ведь часть названия мне известна)?

Причём просто пустой метод получения не подходит, т.к. иногда надо проверять наличие этого окна и же исходя из этого действовать.
Как мне его определять - т.е. наличие по динамическому заголовку - и как по динамическому же заголовку потом к нему обращаться?


Заранее очень признательна за ответ!
  • 0

#2 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 31 марта 2006 - 10:05

Попробуйте так:
Dim PartOfCaption as string
Dim Result as integer
Dim s as string
Dim n as integer

...
PartOfCaption = "what you know about the caption" 'часть заголовка, которая вам известна
Window SetContext, "CurrentWindow", ""
Result = SQAGetProperty("Type=Window;CurrentWindow","Caption",s)
n = InStr(s, PartOfCaption)
if n > 0 then
' это ваше окно
else
' это не ваше окно
end
  • 0

#3 Эдмонд Уэллс

Эдмонд Уэллс

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:n n n

Отправлено 31 марта 2006 - 10:39

Надежда, спасибо большое, спасаете новичка!
Обязательно воспользуюсь советом, скорее всего, мне именно это и нужно!
Только один вопрос - что такое CurrentWindow? Это окно, находящееся поверх остальных?

Я сейчас объясню ситуацию подробно.
Захожу в окно, стандартная форма с кнопочками, заголовок - "карточка".
Нажимаю там пару кнопок, попадаю в дочернее окно, там указываю номер карточки. При выходе из дочернего окна в интересующее меня окно у меня меняется заголовок родительского окна, он становится "карточка" + её номер. Но родительское окно поверх всех остальных. Более того - это окно активно! Иногда, однако, его нет. Получается, мне надо узнать заголовок АКТИВНОГО в данный момент окна и действовать исходя из этого. Поэтому в идеале мне нужна функция, возвращающая заголовок АКТИВНОГО окна.

А её-то я и не могу найти :(
  • 0

#4 Nadezhda

Nadezhda

    Активный участник

  • Members
  • PipPip
  • 81 сообщений
  • Город:Харьков

Отправлено 31 марта 2006 - 11:42

Help по ключевому слову CurrentWindow выдает:

CurrentWindow is a recMethod value that specifies the currently active window as the window object to access or to set as the current context window

Т.е. получается, что CurrentWindow - это как раз то окно, которое сейчас активно. Вы проверяете его заголовок и действуете соответственно результату.
  • 0

#5 Эдмонд Уэллс

Эдмонд Уэллс

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:n n n

Отправлено 31 марта 2006 - 13:14

эээ
не получается. Окно, которое так меня интересует, само по себе - childwindow. Если запускать Ваш вариант - он мне подтягивает заголовок окна, а не его дочернего, которое меня интересует.
Я переделала так:
Window SetContext, "CurrentChildWindow", ""
Result = SQAGetProperty("Type=Window;CurrentChildWindow","Caption",s)

в результате то же самое, я сделала вывод в сообщении "s" - он мне говорит заголовок не того окна, которое мне нужно, а его родительского :((

Пожалуйста, помогите кто-нибудь.
  • 0

#6 Petr

Petr

    Опытный участник

  • Members
  • PipPipPipPip
  • 317 сообщений
  • ФИО:Можаев Петр
  • Город:Москва

Отправлено 31 марта 2006 - 14:33

Пользуйтесь Wildcard characters, т.е.
Window SetContext, "Caption={*постоянная часть caption*}", ""
  • 0

#7 Эдмонд Уэллс

Эдмонд Уэллс

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:n n n

Отправлено 03 апреля 2006 - 06:34

Не работает, говорит "empty string" на эту строчку.

Проблема, как я понимаю, в том, что с дочерними окнами надо работать как-то иначе. При написании плейбэков робот сам всегда ставит контекст дважды: сначала на родительском окне, потом на дочернем, чтобы иметь к дочернему доступ.

Гуру, а подскажите, могу ли я во время работы с окном, пока ещё мне известен его заголовок, присвоить ему какой-либо параметр, по которому в итоге и смогу его определять?
  • 0

#8 Эдмонд Уэллс

Эдмонд Уэллс

    Новый участник

  • Members
  • Pip
  • 64 сообщений
  • ФИО:n n n

Отправлено 03 апреля 2006 - 07:14

Проблема решена :)
Методом подбора, гаданием на кофейной гуще и танцами с бубном. При добавлении ;ChildWindow в recMethod$ заработало :)))

Находим так,

result=SQAWaitForObject("Caption={*Первичный документ};ChildWindow", 3000)

Заходим так

Window SetContext, "Caption={*Первичный документ};ChildWindow", ""

Всем спасибо за помощь.
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных