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

Вниз

Работа с компонентом Image   Найти похожие ветки 

 
Grant   (2005-07-11 11:52) [0]

Всем привет. Очень нужна Ваша помощь. Я с Delphi работаю довольно долго но с графикой не сталкивался. Мне надо сделать вот какую вещь: есть картинка (GIF или .jpg) и есть окно приложения; очень надо сделать так чтобы картинка плавно перемещалась по окну(например из одного угла в другой), то есть получалась как бы анимация. Это нужно сделать очень срочно поэтому искать и читать все подряд нет времени. Подскажите, пожалуйста, с помощью какого компонента и как можно это сделать(вроде с помощью Image), а если ещё и с примером, то вообще будет супер. Заранее огромная всем благодарность.


 
gydvin   (2005-07-11 12:15) [1]

begin
image1.left:=image1.left+1
end;


 
Grant   (2005-07-11 15:00) [2]

Спасибо за ответ. Но если так сделать(в цикле), то она перескакивает с места на место слишком быстро, а мне хотелось бы плавно. Задержки ставить не очень-то хочется.


 
gydvin   (2005-07-11 15:48) [3]

Тогда отрисовывай на канве формы. Допустим создаем bitmap заведомо с большим размером чем форма.

procedure TForm1.Button1Click(Sender: TObject);
var
b1,b2:tbitmap;
x:integer;
begin
b1:=tbitmap.Create;
b2:=tbitmap.Create;
b1.Width:=Width *3;
b1.Height:=Height *3;
for x:=0 to b1.Width do begin
b2.Assign(b1);
b2.Canvas.Brush.Color:=clred;
b2.Canvas.Ellipse(x,10,x+20,30);
canvas.StretchDraw(rect(0,0,Width,Height),b2);
sleep(10);
application.ProcessMessages
end;
b1.Free;
b2.Free;
end;


но код говорю сразу гниловастеньки, бывает и лучше, лишняя затрата ресурсов.


 
Virgo_Style ©   (2005-07-11 19:08) [4]

Перемещай не в цикле, а по таймеру.


 
Grant   (2005-07-12 10:42) [5]

Таймером перемещать получается нормально. Спасибо. Может быть ещё подскажите как избежать при этом мерцаний картинки?


 
MBo ©   (2005-07-12 13:17) [6]

как избежать при этом мерцаний
DoubleBuffered:=True
для формы(если Image лежит на ней)


 
Grant   (2005-07-12 14:28) [7]

Всем огромное спасибо за помощь.



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

Форум: "Основная";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
3-1119533893
Alex17
2005-06-23 17:38
2005.07.31
Как заменить символ


1-1121088537
webpauk
2005-07-11 17:28
2005.07.31
Посылка сообщения


5-1091566662
boband
2004-08-04 00:57
2005.07.31
Stack overflow - save your work and restart Delphi


1-1121331079
Гость2
2005-07-14 12:51
2005.07.31
удаление файлов в папке


6-1113844381
ALex B.
2005-04-18 21:13
2005.07.31
Как узнать какой доступ к шаре(под паролем, полный доступ)?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский