Обнаружил очередной глюк. На этот раз - у компоненты TABCTL32.OCX, т.е. Microsoft Tabbed Dialog Control 6.0 (SP4), точная версия - 6.00.8804. Есть такой код:
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! Выход-то я нашёл, но такой, что самому противно:
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: If SSTab1.Visible Then ' выполнение "некоторого кода" End If ========================================================================================= На этот раз я не просто сообщаю о "гра[sensored]х", а ищу собратьев по этим гра[sensored]м, в смысле по несчастью. Кто-нибудь может прокомментировать этот топик? равно как и предыдущий мой топик в этом же форуме (про глюк у ImageCombo, от 29.09.02)? Почему, начиная с некоторого момента, "нестандартные" контролы начинают глючить? Чего ещё можно ожидать в этом же духе? Я кое-как, конечно, выкрутился (по другому не назовёшь) с этими двумя контролами: "дырку" с ImageCombo залатал с помощью DoEvents, а "дырку" с SSTab - с помощью IF-а. Но вот допишу проект, пущу его в работу, а там как начнётся "продолжение фильма"! По-моему, этого вполне можно ожидать... По крайне мере, ВСЕ результаты тестирования написанного на сегодняшний день кода я решил считать недействительными, и начал тестировать всё заново, - а это задачка не из лёгких, сами понимаете.
Ответить
|