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

Вниз

Запрещение перерисовки наследника TCustomControl   Найти похожие ветки 

 
kirasuki ©   (2004-08-09 18:48) [0]

Наверное это сюда. Требуется запретить перерисовку субжа когда какой-нибудь его чайлд изменяет свой размер (площадь) от нуля до entrie client. При этом оный сильно мерцает. Какие есть решения этой проблемы (желательноно средствами VCL)? При использовании LockWindowUpdate мигает весь десктоп, по этому его использование не желательно. Вопрос в довесок. Есть где VCLный (ActiveX плз. не предлагать) компонент вроде StringGrid, но менее глючный.
Спасибы.


 
Юрий Зотов ©   (2004-08-10 09:10) [1]

Попробуйте заместить CreateParams и там включить стиль WS_CLIPCHILDREN (описание см. в справке по CreateWindow). Если не поможет - приводите код.


 
kirasuki ©   (2004-08-10 11:40) [2]

Работать не хочет (повидимому я еще и неверно описал проблему). Тк форум по VCL, надеюсь все будет понятно (Билдер).
Имеется TPanel (pnlBack) (или иной потомок TCustomControl).
При его создании где-то в программе устанавливаю WS_CLIPCHILDREN так.

SetWindowLong(pnlBack->Handle, GWL_STYLE, GetWindowLong(pnlBack->Handle, GWL_STYLE) | WS_CLIPCHILDREN);

Имеется также агрегат AREA, от которого потом наследуются другие классы.


class AREA {
public:
 AREA(TObject *Owner);
 ~AREA();
 ...
protected:
 TScrollBox *sbxArea;
 void __fastcall _OnMouseWheelUp(System::TObject* Sender...
};

// конструктор
AREA::AREA(TObject *Owner) {
 sbxArea = new TScrollBox(Owner); // при создании нулевые размеры
 sbxArea->Visible = false; // невидим
 sbxArea->Parent = (TWinControl *)Owner;
 sbxArea->Align = alClient; // на всю клиентскую область

}


Потомок данного класса при завершении своего создания устанавливает visible = true. Видимо, мерцание происходит в данный момент. По моему, остается лишь запретить перерисовку родителя во время создания потомка AREA. Также, приму советы по иной стратегии отображения компонента при его создании.


 
Piter ©   (2004-08-10 16:11) [3]

Хммм.. интерсно, это ветка была перемещена из другого форума?


 
Piter ©   (2004-08-10 16:12) [4]

точно. Блин, почему McSimm еше не исправил этот глюк...

Прошу прощения за оффтоп


 
panov ©   (2004-08-10 16:14) [5]

Это не глюк. Все так и должно быть.


 
Игорь Шевченко ©   (2004-08-10 16:19) [6]


> При его создании где-то в программе устанавливаю WS_CLIPCHILDREN
> так.
>
> SetWindowLong(pnlBack->Handle, GWL_STYLE, GetWindowLong(pnlBack->Handle,
> GWL_STYLE) | WS_CLIPCHILDREN);


А вроде как посоветовали CreateParams переписать и в нем устанавливать ?


 
Piter ©   (2004-08-10 16:27) [7]

panov ©   (10.08.04 16:14) [5]

да? Так и должно быть? Пока здесь не напишут ни одного поста - ветка не передается клиентам. Это как раз глюк.
Ладно, заканчиваем оффтоп.


 
kirasuki ©   (2004-08-12 22:29) [8]

<offtop>
Скоро напишу гневный пост по поводу необходимости модераторов и какими им дОлжно быть в идеале.
</offtop>

А ведь нашел как. Сам.

SendMessage(pnlBack->Handle, WM_SETREDRAW, 0, 0);
//показываем все, что нужно
SendMessage(pnlBack->Handle, WM_SETREDRAW, 1, 0);
pnlBack->Invalidate();

И все прекрасно работает.



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

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

Наверх




Память: 0.46 MB
Время: 0.029 c
14-1092194477
Aldor_
2004-08-11 07:21
2004.08.29
На какой минимальной конфигурации будет приемлемо рабать Win2K?


14-1092034168
Яод
2004-08-09 10:49
2004.08.29
telnet


3-1091612672
veb
2004-08-04 13:44
2004.08.29
Ошибка: Size of optimizer block exceeded


1-1092298386
Ренат
2004-08-12 12:13
2004.08.29
Загрузить .gif файл


3-1091788451
Самовар
2004-08-06 14:34
2004.08.29
Удаление пустых записей в базе





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский