Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DoubleBuffered [D6, Win2k]


GIL ©   (2003-10-28 11:11:00) 

Не один раз слышал, что это свойство помогает избежать мигания картинки, но вот не у всех компонентов могу его найти, где найти его у рисунка (TImage) и где в общем случае?


Думкин   (2003-10-31 10:01:00) [1]


> [17] zergey_ (31.10.03 09:33)

Спасибо за лекцию - образовал. %-)))


zergey_   (2003-10-31 09:33:00) [2]

Мдее, мастера блин, DoubleBuffered - св-во компонентов наследников от TWinControl, т.е. тех которые имеют Хэндл окна, из стандартных к ним относятся форма, панель, батон, листбокс и т.д., нада посмотреть тупо от кого наследник используемый контрол... Принци работы этого св-ва можно опредилить проанализировав исходники ВЦЛ: готовится растр размером в клиентскую область контрола, в качестве контекста для рисования подсовывается контекст растра, т.е. фактически мы рисуем на Битмапе, после отрисовки растр копируется в фактический контекст устройства... Кстати мной сделан компонент с прооптимизенной работой этого св-ва...


xxxXXxx   (2003-10-29 11:38:00) [3]

Посмотри здесь:
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1066908346&n=2


Думкин   (2003-10-29 07:15:00) [4]

И где сие чудо сидит? Неужели в Пэинт?


GIL   (2003-10-28 13:34:00) [5]

в пейнтбокс в канвас ничего не грузится, а если и грузится, то не отображается, а в рисунке всеработает, делаю так:
var Bmp:TBitmap;
begin
Bmp:=TBitmap.Create;
Bmp.LoadFromFile("anyfile");
PaintBox1.Canvas.Draw(1,1,Bmp);
Bmp.Free;


GIL   (2003-10-28 13:06:00) [6]

а в канвас как? я привык типа лоад фром файл и т.д. знаю, что избалован, но не мог бы ты подсказать?


sniknik   (2003-10-28 13:00:00) [7]

короче послал пример, вначале поставь

procedure TForm1.FormCreate(Sender: TObject);
begin
DoubleBuffered:= true;

и посмотри поведение на изменении размеров формы, если не будет разници то в свойствах экрана (в системе) поставь галочку на "отображать содержимое окна при перетаскивании" и посмотри еще раз.

> А где он есть это PaintBox, чета я его найти не могу
в палитре system

> и как в него картинку грузить?
тот же канвас


VAleksey   (2003-10-28 12:53:00) [8]

1) Его найти на странице System
2) Картинку надо рисовать на его канвасе.


GIL   (2003-10-28 12:43:00) [9]

и как в него картинку грузить?


GIL   (2003-10-28 12:34:00) [10]

А где он есть это PaintBox, чета я его найти не могу


GIL   (2003-10-28 12:26:00) [11]

попробую, спасибо


sniknik   (2003-10-28 12:13:00) [12]

поменяй TImage на TPaintBox, у него стандартно хорошо работает изменение размера.


GIL   (2003-10-28 12:06:00) [13]

я кусками не рисую, я в таймере уменьшаю высоту рисунка


sniknik   (2003-10-28 12:02:00) [14]

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


GIL   (2003-10-28 11:58:00) [15]

Как сделать чтобы рисунок не мигал???!!!


GIL   (2003-10-28 11:39:00) [16]

у формы нашел, но на рисунок не действует!! он как мигал, так и продолжает мигать


sniknik   (2003-10-28 11:38:00) [17]

ищи его у формы


GIL   (2003-10-28 11:36:00) [18]

Ну кто-нибудь ответит?


Наверх

Титульная страница Поиск, карта сайта Написать письмо