![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TImage [D5, Win95/98]
Artemkin © (2002-04-30 09:00:00)Требуется двигать по форме TImage с задержкой. Как это делать быстро и без моргания???
Doom (2002-05-09 13:04:00) [1]
> Владимир Васильев © (30.04.02 10:52)
> Надо буферизировать вывод графики - сначала собираешь картинку
> в памяти - TBitmap - а потом её копируешь на канву формы
а если загружен JPG а не битмап, что тогда?
У меня сейчас на этом загвоздка, не знаю что и делать.
Нужно передать изображение по инету. У меня это сделано так. Передает сервер, принимает клиент. Сервер пишетImage1.Picture.Graphic.SaveToStream(MyMemoryStream)
клиент читаетImage2.Picture.Graphic.LoadFromStream(MyClientMemoryStream);
все прекрасно получается, НО...у клиента картинка оччень неприятно мигает. КАК от этого избавиться? Оччень надеюсь на помощь.
VEG (2002-04-30 17:09:00) [2]Короче, кладем на ПАНЕЛЬ (Panel1) все комнпоненты, которые нужно двигать БЕЗ мерцания. Для события OnMouseDown тех компонентов, при клике по которому должно происходить перемещение пишешь:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Panel1.perform(WM_SysCommand, $F009, 0);//Двигаем ПАНЕЛЬ!!!
end;
Причем свойство FullRepaint у ПАНЕЛИ (Panel1) ДОЛЖНО стоять в FALSE!!!
Владимир Васильев (2002-04-30 10:54:00) [3]И ещё, если прорисовка стоит на OnMouseMove - то надо ограничить вывод разумным пределом - 10-20 раз в секунду.
Владимир Васильев (2002-04-30 10:52:00) [4]Надо буферизировать вывод графики - сначала собираешь картинку в памяти - TBitmap - а потом её копируешь на канву формы
MBo (2002-04-30 10:16:00) [5]какое смещение - это уж твое дело
Artemkin (2002-04-30 09:41:00) [6]сильно большое смещение...image1.left:=image1.left +10, надо ..+1 и побыстрее
MBo (2002-04-30 09:34:00) [7]Timer1.Timer
image1.left:=image1.left+10;
Artemkin (2002-04-30 09:24:00) [8]А как с задержкой быть ?
MBo (2002-04-30 09:05:00) [9]уменьшить моргание -
doublebuffered:=true;
а может, на канве рисовать ?