Comanche

Глюк с TABCTL32.OCX, т.е. Microsoft Tabbed Dialog Control 6.0 (SP4)

07.12.2008, 18:24. Показов 2651. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Обнаружил очередной глюк. На этот раз - у компоненты TABCTL32.OCX, т.е. Microsoft Tabbed Dialog Control 6.0 (SP4), точная версия - 6.00.8804.

Есть такой код:
Visual Basic
1
2
3
4
5
6
7
For i = 0 To SSTab1.Tabs - 1
    If SSTab1.TabCaption(i) <> 'Общие' Then
        SSTab1.TabVisible(i) = False
    Else
        SSTab1.TabVisible(i) = True
    End If
Next i
Смысл его понятен: оставить видимой только одну вкладку - ту, у которой на ярлыке значится 'Общие'.

Так вот, на определённом i строка SSTab1.TabVisible(i) = False вызывает... угадайте что? В жизни не догадаетесь! Событие SSTab1_Click !!! В котором, кстати, выполняется некоторый код.

Вообще-то, SSTab1_Click можно вызвать только путём SSTab1.Tab = N, где N - номер вкладки, по которой нужно 'щёлкнуть'. Ну или, на худой конец, генерацией события типа Call SSTab1_Click(m). Ну и плюс щелчком мыши, разумеется. Но уж никак не установкой свойства Visible!

Выход-то я нашёл, но такой, что самому противно:
Visual Basic
1
2
3
4
5
6
7
8
9
SSTab1.Visible = False  ' <<< добавил
For i = 0 To SSTab1.Tabs - 1
    If SSTab1.TabCaption(i) <> 'Общие' Then
        SSTab1.TabVisible(i) = False  ' <<< вот тут происходит генерация клика
    Else
        SSTab1.TabVisible(i) = True
    End If
Next i
SSTab1.Visible = True  ' <<< добавил
а в событие SSTab1_Click (в котором раньше только был 'некоторый' код) - дописал IF:
Visual Basic
1
2
3
If SSTab1.Visible Then
    ' выполнение 'некоторого кода'
End If
На этот раз я не просто сообщаю о 'граблях', а ищу собратьев по этим граблям, в смысле по несчастью. Кто-нибудь может прокомментировать этот топик? равно как и предыдущий мой топик в этом же форуме (про глюк у ImageCombo, от 29.09.02)? Почему, начиная с некоторого момента, 'нестандартные' контролы начинают глючить? Чего ещё можно ожидать в этом же духе? Я кое-как, конечно, выкрутился (по другому не назовёшь) с этими двумя контролами: 'дырку' с ImageCombo залатал с помощью DoEvents, а 'дырку' с SSTab - с помощью IF-а. Но вот допишу проект, пущу его в работу, а там как начнётся 'продолжение фильма'! По-моему, этого вполне можно ожидать... По крайне мере, ВСЕ результаты тестирования написанного на сегодняшний день кода я решил считать недействительными, и начал тестировать всё заново, - а это задачка не из лёгких, сами понимаете.
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2008, 18:24
Ответы с готовыми решениями:

Как спомощью com компоненты Microsoft Common Dialog Control 6.0 открывать диалоги?
Подскажите пожалуста как спомощью com компоненты Microsoft Common Dialog Control 6.0 открывать диалоги, то есть при нажатии на 'Открыть'...

Окно новой формы Tabbed Notebook Dialog
Подскажите как создать окно новой формы Tabbed Notebook Dialog? В New Items тупо нет вкладки Forms. Спасибо.

Common Dialog Control
Vopros takoy: V MS Access97/2000 net takogo kontrola, chtoby vyzvat'v okne 'Explorer' faily v directorii(ili ya ne prav?) On yest' v...

6
0 / 0 / 0
Регистрация: 03.12.2007
Сообщений: 14
08.12.2008, 11:14
А чему ты удивляешься? Точно так же работают и OptionButton и CheckBox. Ты ими видимо никогда не пользовался. Кстати мне это кажется логичным. Если ты присваиваешь значение CheckBox, значит VB должен отобразить это в контроле, а значит и событие должно быть вызвано.
0
Comanche
08.12.2008, 12:07
2 kacerro:

1. Вы вообще внимательно читали топик? Цитирую: 'Если ты присваиваешь
значение CheckBox, значит VB должен отобразить это в контроле, а значит
и событие должно быть вызвано.' С этим никто и не спорит: яснее ясного,
что Check1.Value = 1 приведёт к Check1_Click (если перед этим это Value
было отлично от единицы, конечно). Речь-то не про это шла!

2. Только не надо мне говорить, что строчка кода Option1.Visible = True
или Option1.Visible = False должна вызвать событие Option1_Click ! Не
поверю :-)
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
08.12.2008, 14:03
На самом деле глюка нет. Все работает так как и предполагалось.

Событие Click вызывается при переключении с таба на таб.
Теперь представте, что первый таб у Вас активный и Вы его прячете. Есстественно происходит переключение на второй. Вот Вам и событие.
Соответственно код Ваш можно модифицировать и не прятать SSTab полностью.
0
Comanche
08.12.2008, 15:42
2 NickStaves:

Спасибо, я упустил из виду, что если прячется активный в этот момент Таб, то активируется другой.

А что вы думаете про глюк у ImageCombo? Я имею в виду мой топик в этом же форуме.
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
08.12.2008, 19:18
) Там воще что-то мутное.
У меня на сыром проекте под Win2000 этот глюк проявляется.
Мало того, если в ImageCombo уже стоит какое-нить значение и мы его-же присваиваем заново эта гадость снова вызывает Change
0
Comanche
09.12.2008, 17:40
Надо будет на досуге поискать на сайте MS заметки про ImageCombo - может, им уже давно известно про его глюки и они уже успели выпустить какую-нибудь заплатку. Да заодно посмотрю, есть ли к MS Windows Common Controls 6.0 сервис-пак старше 4-го - может, в нём это исправлено.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2008, 17:40
Помогаю со студенческими работами здесь

Проблема с Common dialog control
Здравствуйте! Проблема заключается в следующем... Нужно, чтобы можно было открыть коммон диалог .ShowOpen с возможностью выбора...

Где же ты, Common Dialog Control?
Привет всем! Есть напряг: в XP не вижу Common Dialog компонента. Не подскажете, как действовать, может через API как-то работать (Мне...

Проблемы с MSINET.OCX: 'The Control not be created because it is not properly licensed'
Зарегестрировал MSINET.OCX с помощью regsvr32 msinet.ocx, затем действия следующие: - открываю свой макрос xls2html.xla - нажимаю...

Проблема c Сommon Dialog Control на клиентской машине
Установил на клиентской машине RunTime версию приложения, написанного на Access 97. Приложение включает в себя несколько ActiveX...

Common Dialog Control или что-то еще?
Приветствую, господа! Проблема возникла... Необходимо вывести дерево каталогов для выбора директории с инпутными файлами. Common Dialog...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru