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

Фотография

Toolbar. Как добраться до кнопок в SilkTest


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

#1 dea

dea

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

  • Members
  • Pip
  • 8 сообщений
  • Город:Самара


Отправлено 03 июля 2008 - 04:18

Проблема: Toolbar. Как добраться до кнопок в SilkTest
Есть приложение, написанное на Дельфи. Toolbar опреляется как Toolbar, но доступ к отдельным кнопкам невозможен. Покоординатная запись ничего не дает - выдается ошибка - что объект не найден.
Если кто-то решил данную проблему - поделитесь методами решения.
  • 0

#2 Dmitry_NS

Dmitry_NS

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

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 03 июля 2008 - 07:37

Проблема: Toolbar. Как добраться до кнопок в SilkTest
Есть приложение, написанное на Дельфи. Toolbar опреляется как Toolbar, но доступ к отдельным кнопкам невозможен. Покоординатная запись ничего не дает - выдается ошибка - что объект не найден.
Если кто-то решил данную проблему - поделитесь методами решения.

Одной из особенностей Делфи является то, что во многих случаях кнопки на тулбаре не являются отдельными окнами, чтобы распознаваться как отдельный объект. В таких случаях придется все-таки привязываться к координатам. Как вариант, можно создать набор фейковых (не существующих в системе) кнопок, которые привязать к тулбару и переопределить метод Click, который бы делал клик с учетом смещения этой кнопки. Выглядит это примерно так:

winclass FakeButton : AnyWin
		 POINT pos = { 0 , 0 }
		 
		 VOID ClickButton( INTEGER iButton optional, INTEGER x optional, INTEGER y optional, BOOLEAN bRawEvent optional )
					 if( IsNull( iButton ) )
							iButton = 1
					 if( IsNull( x ) )
							x = 0
					 if( IsNull( y ) )
							y = 0
					 if( IsNull( bRawEvent ) )
							bRawEvent = FALSE
					 this.Click( iButton, x + this.pos.x, y + this.pos.y , bRawEvent )

Соответственно, привязка этих кнопок к вашему тулбару выглядит примерно так

Toolbar tlbMyToolbar
		 tag "Some tag"

		 FakeButton btnButton
				 POINT pos = { 10 , 5 } // Смещение кнопки относительно левого верхнего угла тулбара

Вот подобный принцип можно использовать для работы с кнопками, которые не распознаются.
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#3 dea

dea

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

  • Members
  • Pip
  • 8 сообщений
  • Город:Самара


Отправлено 04 июля 2008 - 06:47

Большое спасибо. Может, найдется решение поэлегантнее? Просто там кнопки разной длины, а на некоторых - выпадающие меню.
  • 0

#4 Dmitry_NS

Dmitry_NS

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

  • Members
  • PipPip
  • 134 сообщений
  • ФИО:Дима
  • Город:Елизово

Отправлено 04 июля 2008 - 08:33

Большое спасибо. Может, найдется решение поэлегантнее? Просто там кнопки разной длины, а на некоторых - выпадающие меню.

Может и есть что-то, но на это расчитывать приходится мало, так как СилкТест ориентирован несколько на другую аудиторию, отличную от той, которая при разработке использует Делфи. Понятное дело, что решение элегантным назвать трудно, но оно хотя бы есть :crazy:
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.


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

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