Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 02:26 19.05.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: :) като си такъв отворко [re: Mixy]
АвторЦ++ (Нерегистриран) 
Публикувано16.11.06 10:56  



тук думите умници, отворковци много се тачат. явно само такива се очаква да ползват Делфи.

There are several ways to eliminate the flicker in the PaintBox control.

Add a WM_ERASEBKND handler and block the erase action - Тцъ! донт бачка. и аз така по инерция следвайки концепцията на VCL действах и си направим наследник на TPaintBox, но туй съобщение просто не пристигна. ходих да погледна в сорса малко - ами че то просто не се препраща на подконтролите TGraphicControl. за справка: procedure TWinControl.WMEraseBkgnd(var Message: TWMEraseBkgnd); в Controls unit.

Add csOpaque to the ControlStyle of the PaintBox - това csOpaque прави същото, като опита да прихванеш WM_ERASEBKND. справка: procedure TControl.InvalidateControl(IsVisible, IsOpaque: Boolean);
...
InvalidateRect(Parent.Handle, @Rect, not (IsOpaque or
(csOpaque in Parent.ControlStyle) or BackgroundClipped));
...
т.е. опцията указва дали по default като викнеш Invalidate на даден контрол, да се вика InvalidateRect с TRUE/FALSE за изпращане на EraseBkgnd. обаче ако Windows си реши поради каквито и да е други причини (например оразмеряване на прозореца да прерисува нещо, flicker-а е 100% налице при TGraphicControl).

Don't call Repaint, Refresh, or Invalidate. - точно Invalidate може да се вика без грижи, ако му включиш csOpaque. flicker тогава няма да имаш (горе кода с InvalidateRect).

п.с. може и да се бъркам някъде. някъде да не съм провел теста сериозно или да съм се подвел. но въпроса ми беше не толкова да се разпали война за или против делфи, борланд и т.н. колкото до това да се поприказва за концепцията. за това има ли счупен момент някъде и къде е той. как да се заобиколи и т.н. тук в TGraphicControl съвсем определено има. и то не че е толкова невъзможен и труден за реализация, ами е просто някакво недоглеждане.

п.с.#2 - ако искате да спомена за още недоглеждания - TClientSocket в асинхронен режим изхвърляше един Exception, който няма начин как да се прихване. просто гръмва (не си спомням точно как и защо). това беше още при Делфи 3! имаше го в Делфи 4 и в Делфи 5. не знам дали са го оправили. откакто се сблъсках с него ползвам други сокет компоненти. резонния въпрос е - като ще има компонененти VCL за какво да ги ползваме, след като ще трябва да търсим други работещи неща. тези в палитрата били само за общия случай.

общия случай е да правиш бързо стабилни неща с малко усилия и труд. на това аз му викам RAD (rapid application development) - нещо за което претендира делфито. и трябва да го защитава.



Цялата тема
ТемаАвторПубликувано
* flicker при наследниците на TGraphicControl Ц++   05.10.06 13:01
. * Re: flicker при наследниците на TGraphicControl ToTo   19.10.06 01:22
. * Re: flicker при наследниците на TGraphicControl Ц++   30.10.06 22:00
. * :) като си такъв отворко NikB   31.10.06 09:30
. * Re: :) като си такъв отворко Ц++   31.10.06 16:48
. * Re: :) като си такъв отворко Mixy   31.10.06 20:41
. * Re: :) като си такъв отворко Ц++   15.11.06 18:34
. * Re: :) като си такъв отворко Mixy   15.11.06 22:01
. * Re: :) като си такъв отворко Ц++   16.11.06 10:56
. * Re: :) като си такъв отворко Mixy   16.11.06 11:44
. * Re: :) като си такъв отворко Ц++   22.11.06 15:14
. * ИЗВОДЪТ!!! Ц++   22.11.06 15:36
. * Re: ИЗВОДЪТ!!! n   22.11.06 17:42
. * Re: ИЗВОДЪТ!!! Ц++   22.11.06 22:18
. * Re: ИЗВОДЪТ!!! Mixy   22.11.06 21:22
. * Re: :) като си такъв отворко Mixy   22.11.06 21:12
. * Re: :) като си такъв отворко Ц++   22.11.06 22:16
. * Re: :) като си такъв отворко Mixy   23.11.06 16:17
. * Re: flicker при наследниците на TGraphicControl Mixy   31.10.06 10:27
. * Re: flicker при наследниците на TGraphicControl Ц++   31.10.06 16:57
. * TGraphicControl vs TCustomControl Йopдaн   31.10.06 18:56
. * Re: flicker при наследниците на TGraphicControl Mixy   31.10.06 20:45
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.