|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.07.2014, 03:57 | #1 |
Пользователь
Регистрация: 20.06.2011
Сообщений: 27
|
XE2, Стили, Глюк отображение и visible
Здравствуйте, помогите, пожалуйста, с решением непонятного мне глюка стилей XE2.
Дело в том, что если я использую стандартные стили XE2 (в данном случае, Aqua Light Slate), то на созданной мною форме иногда элементы, находящиеся на заднем плане, начинают просвечиваться сквозь те, что ближе. Вот пример такого глюка: на форме лежат два Tmemo, а поверх них я создал Tpanel с TTreeView на нем, и в результате скроллбары Tmemo видны сквозь TPanel и TTreeView. Если им сразу указать visible=false, то все окей, а если это делать, например, при нажатии кнопки перед тем, как показать панель с деревом, то скроллбары все равно видны! Пытался как-то с помощью кода и научного тыка решить вопрос, не получилось Код:
Данный код не исправляет ситуацию :( Похоже, что при использовании стилей, свойство visible вообще изменить программно невозможно - Tmemo не пропадают! О_о |
18.07.2014, 09:50 | #2 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 162
|
Не пойму зачем лепить компоненты один поверх другого? Но в любом случае можно-же и просто изменить стиль скроллбаров на ssnone, а затем вернуть как было:
Код:
Код:
|
18.07.2014, 20:04 | #3 |
Пользователь
Регистрация: 20.06.2011
Сообщений: 27
|
1. лепить нужно, чтобы показывать их попеременно
2. проблема не только в мемо, tlabel, например, просвечивается полностью showwindow(memo1.Handle,sw_hide); - помогло, большое спасибо Но проблема с Tlabel еще актуальна, ведь у него нет handle. UPD: для Tlabel помогло "label1.hide". Проблема решена, обе) Спасибо еще раз UPD: найденные решения работают почему-то через раз. И с мемами и с лабелами так что ВОПРОС АКТУАЛЕН! Последний раз редактировалось Kotaries; 18.07.2014 в 20:36. |
19.07.2014, 05:20 | #4 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 162
|
Убил 20 минут чтоб проверить, но всё-же: скроллбары на tmemo перерисовываются поверх других контролов, только если родительским окном является форма, а значит баг проявляется где-то при перерисовке формы. Но как я выше упоминал, что он всплывает только если родитель - форма, а если те-же memo перенести на панель - всё будет в порядке, в не зависимости от того скрывается эта панель, или поверх неё расположена другая.
PS: чтобы показывать их попеременно ИМХО лучше использовать фрэймы, с ними обычно таких проблем не возникает, но как-говорится: хозяин-барин. |
19.07.2014, 07:45 | #5 |
Пользователь
Регистрация: 20.06.2011
Сообщений: 27
|
хозяин - краб-самоучка) Я тоже заметил странные телодвижения с этими скроллбарами: если я запускаю прогу и сразу начинаю работать в том окне (форме) где расположены гадские мемо - все в порядке. Если же я перед этим открыл и закрыл другую формочку программы, а потом начал работать с "баганой" - скроллбары начинают просвечиваться оО
Пойду попробую на панель их налепенить, а еще пойду фреймы покурю. Спасибо еще раз) |
20.07.2014, 08:21 | #6 |
Пользователь
Регистрация: 20.06.2011
Сообщений: 27
|
Отписываюсь: перемещение label и всяких tmemo на панель решило проблему с просвечиванием. Спасибо Диониске, я бы сам долго придумывал, как такую хрень решать)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Embarcadero Delphi XE2 Partner DVD (Зборник компонентов для XE2) | volod3000 | Софт | 2 | 01.11.2011 02:26 |
Visible | [Smarik] | Помощь студентам | 2 | 28.03.2008 18:01 |
TObject.Visible | )Игнат( | Общие вопросы Delphi | 19 | 22.01.2008 23:10 |