Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];

Вниз

Как быстро передвинуть 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.432 c
3-1099560515
kolos_rus
2004-11-04 12:28
2004.12.05
OLE и Blob - поля Interbase


14-1100524967
Kolan
2004-11-15 16:22
2004.12.05
Помогите на вопрос ответить.


1-1101200069
main
2004-11-23 11:54
2004.12.05
файловая система и TREEVIEW


3-1098510260
UVV
2004-10-23 09:44
2004.12.05
Посоветуйте компоненты...


1-1100675286
Jay
2004-11-17 10:08
2004.12.05
Help Button





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский