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

Вниз

Как быстро передвинуть Image?   Найти похожие ветки 

 
bulanov   (2004-11-24 04:07) [0]

Подскажите пожалуйста как разрешить следующую проблему:
мне необходимо (с шагом 1-2 пикселя) двигать картинку на форме (допустим слева-направо), причем очень быстро. Как бы я не пытался это осуществить у меня ничего не выходит, двигается слишком медленно (и просто двигал, и перерисовывал на канву по указанным координатам и копировал). Увеличение шага сдвига приводит к тому, что при выполнении еще каких-либо задач приложением, картинка при перемещении начинает жутко искажаться.


 
ЮЮ ©   (2004-11-24 04:19) [1]

>(с шагом 1-2 пикселя) очень быстро.

определись: с шагом или быстро :)
скорость = пикселм в секунду. шаг должен зависить от того, сколько времени прошло к моменту очередной перерисовем


 
bulanov   (2004-11-24 04:27) [2]

400 пикселей в секунду


 
Defunct ©   (2004-11-24 04:30) [3]

Кнопкой запускается, той же кнопкой и останавливется.

procedure TForm1.Button1Click(Sender: TObject);
var
   Bmp : TBitmap;
   i   : Integer;
begin
 if TButton(Sender).Tag > 0 then TButton(Sender).Tag := 0 else
 begin
   Bmp := TBitmap.Create;
   with TButton(Sender) do
   Try
     Tag := 1;
     Try
       bmp.LoadFromFile("C:\Test.bmp"); // <-- Ваш рисунок
       Canvas.Pen.Color := Color;
       i := Self.Width - bmp.Width;
       while Tag>0 do
       begin
         dec(i);
         if i < - bmp.Width then i := Self.Width - bmp.Width;
         Canvas.Draw(i, 20, bmp);
         Canvas.MoveTo( i + bmp.Width, 20);
         Canvas.LineTo( i + bmp.Width, 20 + bmp.Height );
         Sleep(2);
         Application.ProcessMessages
       end
     except
       On E:Exception do ShowMessage( E.Message )
     end
   finally
     Bmp.Free
   end
 end
end;


 
bulanov   (2004-11-24 04:39) [4]

не совсем то что нужно,
я написал что нужна скорость пикселей 400 в секунду, а этот пример рисует в 6 раз меленнее.
если увеличиваю шаг dec(i); начинаются искажения.


 
Defunct ©   (2004-11-24 04:41) [5]

bulanov   (24.11.04 04:39) [4]

Уберите Sleep.
Sleep регулирует скорость перемещения.


 
Defunct ©   (2004-11-24 04:43) [6]

> я написал что нужна скорость пикселей 400 в секунду

эх.. я же понятия не имею, что есть для вас скорость 400 пикселей в секунду...


 
bulanov   (2004-11-24 04:48) [7]

ой, блин не заметил =-))))
спасибо.



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

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

Наверх




Память: 0.48 MB
Время: 0.047 c
14-1100801883
Drakon
2004-11-18 21:18
2004.12.05
Предпятничная задача


1-1101137379
hgd
2004-11-22 18:29
2004.12.05
Как отследить


1-1101112928
Vn
2004-11-22 11:42
2004.12.05
Значение max высоты формы во время ее создания.


4-1098450973
Lin7
2004-10-22 17:16
2004.12.05
Как узнать размер иконки на рабочем столе?


14-1100200907
Викусик
2004-11-11 22:21
2004.12.05
Глупый вопрос.