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

Фотография

ComboBox


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

#1 lyolea84

lyolea84

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

  • Members
  • Pip
  • 31 сообщений
  • Город:Молдова, Кишинёв

Отправлено 14 мая 2008 - 14:12

Люди...помогите может у вас есть идеи или вы это делали...

При нажатии checkbox-a Extended в ComboBox-e этот ComboBox становицо extended,но в Силктесте для ComboBox-ов не прописано свойство blsExtend(как например для ListBox и других обьектов) которое проверяет если контрол стал Extended.
Мне нужно выполнить такую проверку...
Заранее спасибо :good:
  • 0

#2 Dmitry_NS

Dmitry_NS

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

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

Отправлено 14 мая 2008 - 15:33

Люди...помогите может у вас есть идеи или вы это делали...

При нажатии checkbox-a Extended в ComboBox-e этот ComboBox становицо extended,но в Силктесте для ComboBox-ов не прописано свойство blsExtend(как например для ListBox и других обьектов) которое проверяет если контрол стал Extended.
Мне нужно выполнить такую проверку...
Заранее спасибо :good:

Проверка подобного состояния действительно отсутствует у ComboBox. Более того, и у реального оконного класса, который используется для програмной реализации комбо-бокса, подобного атрибута нет. На самом деле, комбобокс трансформируется в некоторый модифицированный класс, совмещающий в себе функционал лист-бокса. Как вариант, попробуйте финт, наподобие:

Допустим, у нас есть комбобокс, который описан в виде:

ComboBox TestCombo
tag "MyCombo"

Для того, чтобы выполнить нечто наподобие
TestCombo.IsExtendSel()
мы делаем
ListBox( "[ComboBox]MyCombo" ).IsExtendSel()
То есть, реально обращение идет к комбо-боксу (тег ссылается на него), но методы и свойства используются у класса ListBox, который содержит нужную нам проверку.

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

#3 lyolea84

lyolea84

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

  • Members
  • Pip
  • 31 сообщений
  • Город:Молдова, Кишинёв

Отправлено 15 мая 2008 - 06:48

Пасипа....вариант хороший....
Но я вчера сидела сидела и сделала всетаки вот как

[ ] i = GetWindowLongW( .TheComboBox.hWnd , CBS_SIMPLE ) //hWnd-property,the internal handle of a
window.Возвращает дескриптор данного окна
[-] if( ( i & CBS_SIMPLE) ) // CBS_SIMPLE-константа ComboBox отображающая его простой(обычный) стиль
[ ] Error("The Combo box is not of extended type")
[ ] .Extended.bValue = TRUE // bValue- property shows the state of the chechox

&-логическое И,здесь проверяет на вхождение CBS_SIMPLE в маску стиля,т.е. проверяем если после нажатия Extended элемент ComboBox остался простым или изменился.Вроде работает )))))))
  • 0

#4 lyolea84

lyolea84

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

  • Members
  • Pip
  • 31 сообщений
  • Город:Молдова, Кишинёв

Отправлено 15 мая 2008 - 07:01

Но теперь у меня другая проблема ...уже с ListView,у меня есть секция View с радио баттонами которые надо поочереди покликать и проверить как меняецо вид ListView,т.е. иконки,список,маленькие иконки,детальный список.Вот так это выглядит у меня....
lsValue = .View.lsContents
for i = 1 to ListCount(lsValue)
.View.sValue = lsValue[i]
switch( lsValue[i] )
case "Icon" iValue = LVV_ICON
case "Small icon"
iValue = LVV_SMALL_ICON
case "List"
iValue = LVV_LIST
case "Details"
iValue = LVV_DETAILS

if( .TheListView.GetView() != iValue ) // GetView-returns the name of the current view of the listview.
Error("Incorrect view mode for List View. Expected: {lsValue[i]}. Actual: {.TheListView.GetView()}")

так вот когда я добавила проверку какое значение приобретает .TheListView.GetView() оказалось что какой бы вид не был выбран он считывает его как LVV_ICON. И я не знаю либо я что-то не так написала либо метод GetView как то не атк работает....
ПОДСКАЖИТЕ :good:
  • 0

#5 Dmitry_NS

Dmitry_NS

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

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

Отправлено 15 мая 2008 - 07:05

Пасипа....вариант хороший....
Но я вчера сидела сидела и сделала всетаки вот как

[ ] i = GetWindowLongW( .TheComboBox.hWnd , CBS_SIMPLE ) //hWnd-property,the internal handle of a
window.Возвращает дескриптор данного окна
[-] if( ( i & CBS_SIMPLE) ) // CBS_SIMPLE-константа ComboBox отображающая его простой(обычный) стиль
[ ] Error("The Combo box is not of extended type")
[ ] .Extended.bValue = TRUE // bValue- property shows the state of the chechox

&-логическое И,здесь проверяет на вхождение CBS_SIMPLE в маску стиля,т.е. проверяем если после нажатия Extended элемент ComboBox остался простым или изменился.Вроде работает )))))))

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

#6 Dmitry_NS

Dmitry_NS

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

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

Отправлено 15 мая 2008 - 07:29

Но теперь у меня другая проблема ...уже с ListView,у меня есть секция View с радио баттонами которые надо поочереди покликать и проверить как меняецо вид ListView,т.е. иконки,список,маленькие иконки,детальный список.Вот так это выглядит у меня....
lsValue = .View.lsContents
for i = 1 to ListCount(lsValue)
.View.sValue = lsValue[i]
switch( lsValue[i] )
case "Icon" iValue = LVV_ICON
case "Small icon"
iValue = LVV_SMALL_ICON
case "List"
iValue = LVV_LIST
case "Details"
iValue = LVV_DETAILS

if( .TheListView.GetView() != iValue ) // GetView-returns the name of the current view of the listview.
Error("Incorrect view mode for List View. Expected: {lsValue[i]}. Actual: {.TheListView.GetView()}")

так вот когда я добавила проверку какое значение приобретает .TheListView.GetView() оказалось что какой бы вид не был выбран он считывает его как LVV_ICON. И я не знаю либо я что-то не так написала либо метод GetView как то не атк работает....
ПОДСКАЖИТЕ :good:

А с форматированием там все в порядке? В том примере, из которого это взято, было вот так
[ ] lsValue = .rlstView.lsContents
[+] for i = 1 to ListCount(lsValue)
				[ ] .rlstView.sValue = lsValue[i]
				[+] switch( lsValue[i] )
								[+] case "Icon"
												[ ] iValue = LVV_ICON
								[+] case "Small icon"
												[ ] iValue = LVV_SMALL_ICON
								[+] case "List"
												[ ] iValue = LVV_LIST
								[+] case "Details"
												[ ] iValue = LVV_DETAILS
				[ ] 
				[+] if( .lstTheListView.GetView() != iValue )
								[ ] Error("Incorrect view mode for List View. Expected: {lsValue[i]}. Actual: {.lstTheListView.GetView()}")
Этот пример работал корректно. Вполне допустимо, что проблема возникает, если скрипт слишком быстро работает и измененный статус еще не проявился. Можно попробовать поставить sleep(1) сразу после выбора элемента в радио-листе. Если проблема в быстрой работе, то это реально может помочь
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#7 lyolea84

lyolea84

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

  • Members
  • Pip
  • 31 сообщений
  • Город:Молдова, Кишинёв

Отправлено 15 мая 2008 - 08:00

А с форматированием там все в порядке?
Этот пример работал корректно. Вполне допустимо, что проблема возникает, если скрипт слишком быстро работает и измененный статус еще не проявился. Можно попробовать поставить sleep(1) сразу после выбора элемента в радио-листе. Если проблема в быстрой работе, то это реально может помочь

Да с форматированием все нормуль,это я так коряво сюда принесла.А sleep не помог.Я вот еще думаю может ли быть проблема в том что у меня Виста? :good:
  • 0

#8 Dmitry_NS

Dmitry_NS

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

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

Отправлено 15 мая 2008 - 08:24

Да с форматированием все нормуль,это я так коряво сюда принесла.А sleep не помог.Я вот еще думаю может ли быть проблема в том что у меня Виста? :good:

Вполне возможно, что это из-за Висты. Пример разрабатывался на ХР и на старой версии СилкТеста ( 6.5 ). Да и было это 2 года назад, так что за это время многое могло поменяться. Кстати, а используемая вами версия СилкТеста поддерживает работу с Вистой? Это можно посмотреть в Release Notes а разделе системных требований
  • 0
Основной принцип моего существования — служение гуманистическим идеалам человечества.

#9 lyolea84

lyolea84

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

  • Members
  • Pip
  • 31 сообщений
  • Город:Молдова, Кишинёв

Отправлено 15 мая 2008 - 08:44

Вполне возможно, что это из-за Висты. Пример разрабатывался на ХР и на старой версии СилкТеста ( 6.5 ). Да и было это 2 года назад, так что за это время многое могло поменяться. Кстати, а используемая вами версия СилкТеста поддерживает работу с Вистой? Это можно посмотреть в Release Notes а разделе системных требований


у нас вроде версия 8.5 мы раньше в нете смарели на сайте разработчика и писалось что поддерживает и в разделе хэлпа тоже пишет.....
  • 0

#10 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 21 мая 2008 - 15:51

А вы уверены, что установливаете эти свойства, когда контрол меняется?
Мы столнулись с тем, что программист может "вручную" менять вид контролов, однако этого нельзя было проверить ни Силком ни WinAPI :(
  • 0

#11 lyolea84

lyolea84

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

  • Members
  • Pip
  • 31 сообщений
  • Город:Молдова, Кишинёв

Отправлено 23 мая 2008 - 10:08

А вы уверены, что установливаете эти свойства, когда контрол меняется?
Мы столнулись с тем, что программист может "вручную" менять вид контролов, однако этого нельзя было проверить ни Силком ни WinAPI :(

Ну вручную что вы имеете в виду...када выбираецо тот или иной вид иконок то они соответсвенно меняюцо,но силк этого не отслеживает почему то...
  • 0

#12 vass

vass

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

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 10 июня 2008 - 09:26

поменять вид иконок - можно многими путями, но при этом сам контрол не поменяет своего состояния. Поэтому наружу он будет выдавать неправильное значение состояния (что и отобразит Силк)
иногда программисты просто пикселы рисовать могут, поэтому случается, что штатные средства пасуют...
попросите, что программист написал сам утилиту - которая показыает, в каком состоянии находится тот или иной ListView, и с помощью нее проверьтe этот контрол ;)
  • 0


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

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