![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]
Ну кто-нибудь ответит?