Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Вниз

Перерисовка окна   Найти похожие ветки 

 
Paladin   (2003-08-27 12:52) [0]

Перерисовка окна

Жутко колбасит контролы на окне, во время его переисовки, вызваной изменением размеров формы.
Господа, помогите избавиться от этого жуткого "прыганья" контролов!

Имеется форма, с закругленными углами.
Написана своя панель (наследник то TCustomPanel).
Панель также имеет закругленные углы, да еще и свою отрисовку - довольно сложную.
В результате панель выглядит как объемная с плавными градиентами по краям.

Форма состоит из этих панелей. Одни вложены в другие.
Все панели выравниваються и якоряться.
На панелях располоджены контролы, например, TDrawingGrid

При изменении размеров формы если других контролов, кроме панелей нет, то все происходит гладко.
Но как только добавляешь контрол - накчинает жутко колбасить, что выражается в том, что контрол как бы вылазит вперед.
Например, при увеличении размеров формы вправо, во время самого процесса, панели еще не успевают перерисоваться, а контролы уже успевают.
Получается эффект, как будто контролы вылазят за границы формы.

Всяческие DoubleBuffered не помогают.
Если запретить отрисовку окна при помощи LockWindowUpdate, то все работает нормально, за исключением того,
что все остальные окана начинают перерисовываться, т.е. при изменении размеров формы, несколько раз перерисовываются весь рабочий стол.
Такой вариант не подходит.

Предполагаю, что во время изменения размеров окна, вместо одного просчета будущего расположения контролов, с учетом выравниваний и якорей, и одной их финальной отрисовкой, происходит многократная перериовка контролов при выравнивании.
Интуитивно чувствую, что нужно бы отрисовать всю форму со всеми контролами в память, а потом уже, когда все займут свои места - отрисовать на экран. Но не знаю, как это сделать.

Помогите, господа!


 
Paladin   (2003-08-27 18:27) [1]

Эта задача сразу появляется, когда необходимо немного разукрасить окна...


 
Anatoly P   (2003-08-27 18:47) [2]

Пробовал .DoubleBuffered ?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
3-24358
Zelius
2003-08-15 13:52
2003.09.08
Кто пробовал перевести Paraodx на MS SQL?


14-24673
stone
2003-08-12 16:26
2003.09.08
Курсы DELPHI для начинающих


1-24523
Vitalygavrilov
2003-08-27 06:54
2003.09.08
Как привезать к своей проге мой www


1-24541
a123
2003-08-26 18:09
2003.09.08
Как можно программно узнать установлен ли Acrobat Reader или нет?


1-24547
Seldon
2003-08-26 13:07
2003.09.08
FindFirst etc





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский