Главная страница
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.042 c
6-1096118529
Шишкин Илья
2004-09-25 17:22
2004.12.05
Как определить, доступен ли компьютер в LAN


3-1099901646
Меверик
2004-11-08 11:14
2004.12.05
Наименования полей!


3-1099832621
DeepProg
2004-11-07 16:03
2004.12.05
Отобразить Memo поле в DBGrid - вариация на тему


3-1100009021
gedd
2004-11-09 17:03
2004.12.05
btr файлы, чем открыть?


14-1100688195
blackman
2004-11-17 13:43
2004.12.05
25 января – Татьянин день