Главная страница
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.045 c
1-1101044563
ИМХО
2004-11-21 16:42
2004.12.05
Работая с текстовым файлом


3-1099733065
normandia
2004-11-06 12:24
2004.12.05
Компонента для работы с иерархическими данными


14-1100658752
uses-mind.dll
2004-11-17 05:32
2004.12.05
нужен русский хелп для дэльфи 6, встраиваемый в среду .


1-1101032114
Zif
2004-11-21 13:15
2004.12.05
Преобразование 267 минут в 4:45


14-1099934080
ИМХО
2004-11-08 20:14
2004.12.05
Вопрос тем, кто юзает ноутбуки