Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Как при скролинге методом ScrollBy убрать мерцание?   Найти похожие ветки 

 
Графика   (2003-06-09 10:02) [0]

Мастера, как решить траблу? Создаю картинку: рисую на Bitmap потом засовываю его в JpegImage и потом засовываю это в Image, а Image в свою очередь лежит в ScrollBox. При прокрутке методом SrollBy наблюдается некрасивое явление - мерцает по краям. Как убрать этот глюк?


 
Графика   (2003-06-09 11:44) [1]

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


 
Song ©   (2003-06-09 11:45) [2]

Form1.DoubleBuffered
Но мерцание не уберет, уменьшит.


 
Графика   (2003-06-09 11:49) [3]


> Form1.DoubleBuffered

я хочу сделать ActiveX компонент, как там быть? там формы нет....


 
McSimm2   (2003-06-09 11:53) [4]

BitBlt() ??? может


 
Графика   (2003-06-09 11:56) [5]


> BitBlt() ??? может

примерчик как пользоваться не подкинешь?


 
McSimm2   (2003-06-09 13:02) [6]

При работе с графикой - используй мнтод двойной буферизации. Т.е. сначала всё рисуй на битмапе, а уже потом копируй его на рабочий битмап (BitBlt). А что бы про мерцание "вообще забыть" перехватывай WM_ERASEBKGND и в его теле ничего не пиши.


WM_ERASEBKGND: begin
//--
end;
wm_Paint : begin
BeginPaint(Window, PaintStr);
hCompatibleDC:= CreateCompatibleDC(0);
hOldBitMap:=SelectObject(hCompatibleDC,CreateBitmap (ClientRect.right- ClientRect.left,ClientRect.Bottom -ClientRect.top, GetDeviceCaps (hCompatibleDC,PLANES), GetDeviceCaps(hCompatibleDC,BITSPIXEL),0));
FillRect(hCompatibleDC, ClientRect, Brush);
SetBkMode(hCompatibleDC,TRANSPARENT);
SelectObject(hCompatibleDC,Font);
BitBlt(PaintStr.hdc,0,0,ClientRect.right,ClientRect.bottom,hCompatibleDC,0,0,SRCCOPY);
DeleteObject(SelectObject(hCompatibleDC,hOldBitMap));
DeleteDC(hCompatibleDC);
EndPaint(Window,PaintStr);
end;


 
Графика   (2003-06-09 13:25) [7]


> А что бы про мерцание "вообще забыть" перехватывай WM_ERASEBKGND
> и в его теле ничего не пиш

нет осталось мерцание...


 
Графика   (2003-06-09 14:30) [8]

что - то не догоню... пишу
...
BitBlt(Canvas.Handle,0,0,250,250,Btm.Canvas.Handle,0,0,SrcCopy);
...
рисунка нет.
видно что при Resize - рисунок появляется а потом пропадает.
Что подскажете мастера?



 
VMcL ©   (2003-06-09 15:13) [9]

>Графика (09.06.03 14:30)

>что - то не догоню... пишу
>...
>BitBlt(Canvas.Handle,0,0,250,250,Btm.Canvas.Handle,0,0,SrcCopy);

где "пишу"?


 
Графика   (2003-06-09 15:20) [10]


> VMcL © (09.06.03 15:13)

уже догнал, может подскажете как лучше сделать скролинг?
я не знаю как скопировать кусок из Bitmap с заданой координаты и потом нарисовать BitBtl?


 
McSimm2   (2003-06-09 15:21) [11]

пиши в теле процедуры, которая отрисовывает твой скроллбар


 
Графика   (2003-06-09 15:42) [12]

мастаки, как скопировать кусок из невидимой части и нарисовать?


 
Графика   (2003-06-09 16:06) [13]

мастаки, помогите, плиз ...


 
McSimm2   (2003-06-09 16:29) [14]

что значит из не видимой ??


 
Графика   (2003-06-09 16:48) [15]

Все, всем, спасибо, сам допер.



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

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
3-83918
Alex_x
2003-06-03 14:53
2003.06.26
кинте пример передачи з датасета в Excel


1-84124
ray_wagner
2003-06-10 21:13
2003.06.26
Combobox????


1-84112
Sam
2003-06-08 01:28
2003.06.26
Kylix - не запускаются скомпилинные проги


3-84020
WinAmp
2003-05-30 21:07
2003.06.26
Индекс не дает редактировать данные в таблице?! :-(


3-83992
koks
2003-05-29 11:30
2003.06.26
эксклюзтвный доступ в dbf...... проблема