Как глючит
Редактировалось 1 раз(а), последний 2019-06-29 10:59:14
Ответов: 263
Рейтинг: 18
|
|||
Не всегда и не на всех компьютерах, но проявляется вот такой глюк с отрисовкой.
Как глючит Редактировалось 1 раз(а), последний 2019-06-29 10:59:14 |
|||
карма: 3 |
|
Ответов: 321
Рейтинг: 10
|
|||
fox-video, помню у нас с прозрачностью какие-то проблемы были, нестабильно работали элементы интерфейса, если память не изменяет, то дело в KOL. Где-то есть исправленный.
По крайне мере и по сей день сталкиваюсь с такой проблемой. И для критически важных элементов приходится что-то придумывать. Например при запуске формы, у меня есть кнопка "Далее", и чтобы она не исчезла при создании формы, я делаю на OnCreate формы линию к кнопке (doBringToFront) или Visible 1, точно не помню. В вашем случае на onResize поставить что-то, что заставит перерисовать элемент, при изменении размера компонента. Наверняка это может решается иначе, но я выкручиваюсь таким способом, так что думаю тема актуальна. |
|||
карма: 1 |
|
Ответов: 263
Рейтинг: 18
|
|||
Я применяю "костыль" RedrawManager повешенный на событии onResize, но хотелось бы более кардинального решения.
|
|||
карма: 3 |
|
Ответов: 537
Рейтинг: 14
|
|||
Есть такой глюк даже на элементах, не отражается кнопка ОК, Отмена, пока мыхой по ним не проведешь. WIN7 64
Редактировалось 1 раз(а), последний 2019-06-29 12:09:34 |
|||
карма: 4 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Видать гуру на меня осерчали за мою прямолинейность, каюсь
Кто видел демо с VistaPanel(первое) таже болячка пришлось лечить кардинально перекрыв метод контейнера
|
|||
карма: 4 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
andrestudio писал(а): пришлось лечить кардинально перекрыв метод контейнера А че не сразу в Win? |
|||
карма: 22 |
|
Ответов: 263
Рейтинг: 18
|
|||
andrestudio писал(а): пришлось лечить кардинально перекрыв метод контейнера Для рядового проекта этот способ применим? Если да, то где нужно править? |
|||
карма: 3 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
fox-video писал(а): Для рядового проекта этот способ применим? Если да, то где нужно править?Попробуй в Win.pas заменить onResize вот на такой
|
|||
карма: 22 |
|
Ответов: 263
Рейтинг: 18
|
|||
nesco писал(а): Обязательно отпишись, если нормально будет работать, то буду фикситьПриступил к тестированию. Глюк проявляется не всегда, по этому тестирование займет какое-то время. Пока добиться "глюка" не удалось. Позже отпишусь о результатах. |
|||
карма: 3 |
|
Ответов: 5227
Рейтинг: 587
|
|||
nesco, не торопись, сам ведь понимаешь что это топорное решение. Не визуальный контрол перекрыт визуальным, чес слово не знаю не рыл(может там очередь событий уходит в не бытие), но лучше сам аппендикс найти
|
|||
карма: 4 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
andrestudio писал(а): Не визуальный контрол перекрыт визуальным, чес слово не знаю не рыл(может там очередь событий уходит в не бытие)С чего бы это? Мы даем перерисовку только наследникам, и только при изменении размера родителя. Конечно, может быть такая ситуация, когда наследник сам является родителем, и тоже меняет размер, а наследник наследника будет пытаться дать команду на перерисовку либо родителя, либо верховного родителя. Это типа как в главной панели существует куча других панелей, все они одновременно меняют размер, а элементы вложенных панелей дают команду на перерисовку главной панели. Если такого маразма во вложенных элементах нет (???), то ситуации с перекрестным вызовом быть не должно, и все выполнится в пределах отведенной очереди. Правда может стоит подумать о Z-очереди, чтобы контролы отображались последовательно в нужном порядке, и не было перекрытия. КМК, об этом стоит подумать. --- Добавлено в 2019-06-30 17:01:13 Сейчас проверил очередность, вроде нормально отображает перекрытые контролы при изменении размера родителя. Редактировалось 4 раз(а), последний 2019-06-30 17:01:13 |
|||
карма: 22 |
|
Ответов: 263
Рейтинг: 18
|
|||
nesco писал(а): Если такого маразма во вложенных элементах нет (???)Именно такая маразма присутствует в примере с которого снято видео. Однако проблема с прорисовкой, весьма не редко, встречается на формах с единственной вложенной панелью типа ChildPanel и при условии что нет никаких изменений размеров. Запустил программу, а одного элемента на форме нет. В место него белый прямоугольник, или кракозябра из вертикальных\горизонтальных полосок. Редактировалось 3 раз(а), последний 2019-06-30 19:40:04 |
|||
карма: 3 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
fox-video писал(а): Именно такая маразма присутствует в примере с которого снято видеоЭто немного другое. fox-video писал(а): а одно элемента на форме нетЭто иногда бывает при включенной прозрачности. Еще бывает при большом количестве визуальных компонентов. |
|||
карма: 22 |
|
Ответов: 263
Рейтинг: 18
|
|||
nesco писал(а): Это иногда бывает при включенной прозрачности. Еще бывает при большом количестве визуальных компонентов.Увы, без прозрачности и с малым количеством визуальных компонентов. Пример с небольшой формой --- Добавлено в 2019-06-30 19:33:01 Похоже я наврал. Картинка на форме отрисовывается с прозрачностью. > Редактировалось 2 раз(а), последний 2019-06-30 19:35:02 |
|||
карма: 3 |
|
Разработчик
Ответов: 26113
Рейтинг: 2126
|
|||
fox-video писал(а): Картинка на форме отрисовывается с прозрачностью.Это не та прозрачность. Я имел в виду включенную прозрачность у визуальных контролов, таких как Label или CheckBox |
|||
карма: 22 |
|