Невидимые объекты иногда не так уж и невидимы | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Всем здравствуйте
За много лет создал не один десяток приложений. Но в двух из них необъяснимое для меня "чудо": Некоторые объекты Text, у которых в дизайнере установлено Visible=.f. при запуске и открытии этой формы все-равно видны, точнее видны белые прямоугольники на их месте. [attachment 29773 ] и [attachment 29774 ] причем 999... - это InputMask (хотя это свойство тоже установлено и у полей в первом примере. При последующем изменении Visible на .t. и обратно "прямоугольники" "пропадают" Другие объекты рядом "нормально" невидимы Магия? Исправлено 1 раз(а). Последнее : Sandwich, 29.07.18 00:31 |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Поскольку это "чудо" легко создать, то оценить без кода, рукотворное ли оно (ваша ошибка), или нет, по скрину могут лишь экстрасенсы.
|
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Я бы привел код сразу, если бы было что показать. На форме есть две кнопки в событиях Click() одной из стоит
Пробовал следующее: менял Enabled , BackColor, DisabledBackColor во всех возможных сочетаниях - результат один, как на скрине Более того: я не представляю как рукотворно заставить отображаться "место" от невидимого объекта |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Нам же отсюда не видно, что заставляет отображаться это "место". Вы считаете, что это делает сам невидимый объект, а я могу предположить, что это другой объект или даже просто некоторый код. Бывает же так, что после отладки остается некий "забытый мусор", иногда срабатывающий. То же можно сказать и о ваших классах, на которых основаны объекты. Кто знает, насколько хитрый там код и к каким "глюкам" он может иногда приводить? Что-то определенное (без гадания) может сказать только тот, кто уже сталкивался с подобным. |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Тогда пойти от обратного - убирать из этой формы поочерёдно всё до исчезновения глюка. А если он останется в самом предельно урезанном виде (когда на форме уже ничего кроме этих текстбоксов не будет, да и источников данных тоже не будет) - в архив форму, сопутствующие классы и сюда. P.S. Вообще фокс достаточно чувствителен к глюкам видеокарты - т.е. теоретически это может быть вина конкретного драйвера видео - т.е. обновить его всяко стоит... ------------------ WBR, Igor Исправлено 1 раз(а). Последнее : Igor Korolyov, 29.07.18 16:05 |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Спасибо, попробую. |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Метод поочередного удаления привел к следующему:
На форме остались только эти текстбоксы и один listbox Все методы формы пустые, кроме Init. В нем написано
1. убираю thisform.refresh - текстбоксы не видимы 2. очищаю у них (или одного из них) inputmask - те текстбоксы, у которых очистил свойство не видимы в не зависимости от того был thisform.refresh или нет. 3. создаю новую "чистую" форму и повторяю все объекты - все работает корректно 4. копирую эти текстбоксы из "старой" формы в новую - опять "чудо" 5. добавляю в старую новые текстбоксы - они работают корректно Текстбоксы стандартные |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
akvvohinc Сообщений: 4218 Откуда: Москва Дата регистрации: 11.11.2008 |
Тогда положите файлы двух вариантов этой формы - с глюком и без - я сравню их на уровне таблиц форм.
Ну, или сделайте это самостоятельно. |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Дело видимо не в самих формах:
Открыл Фокс и сразу запустил новую форму, в которой А "глюка" то и нет. Запустил приложение, вышел из него - глюк появился в этой новой форме Значит причина не в самой форме и её объектах. |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Не советую из Init вызывать рефреши и манипулировать фокусом ввода. Форма к тому моменту ещё не видима, а некоторые команды - в частности SetFocus приводят к преждевременному показу этой самой формы. В результате, к примеру, ломается модальность да и так всякие "странности" могут происходить.
------------------ WBR, Igor |
Re: Невидимые объекты иногда не так уж и невидимы | |
---|---|
Sandwich Автор Сообщений: 137 Дата регистрации: 08.02.2014 |
Убрал из Init клик по ListBox и просто продублировал код из ListBox.click в конец Init. Все стало красиво! НО! реальный клик по этому ListBox снова отобразил эти "места". Я решил не мучить ни себя, ни почтенных форумчан и забил большой корявый костыль - нарисовал прямоугольник в цвет формы поверх, точнее даже под этими полями. Помогло! Даже программно скрывать его не понадобилось. Не охота тратить время. Всем спасибо! Причем достаточно было "перекрыть" эти поля частично, а не полностью [attachment 29776 ] Исправлено 1 раз(а). Последнее : Sandwich, 29.07.18 19:49 |
© 2000-2024 Fox Club  |