Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.05.2011, 00:45
Аватар для Antidelphik
Antidelphik Antidelphik вне форума
Новичок
 
Регистрация: 28.04.2011
Сообщения: 67
Репутация: 10
Вопрос флаг движущийся по периметру экрана

Доброй ночи или кто когда читает гостям темы =) нароооод, помогите пожалуйста, я вот не знаю, как нарисовать следующую штуку:
надо нарисовать российский флаг и чтобы он двигался по периметру экрана,нарисовать флаг я могу,НО, я его рисую полосками, но так, чтобы они выкладывались в российский флаг, следовательно если чё-то двигать, то там двигаться будет только одна полоска, остальные ж на месте стоять будут, вот я не знаю что делать, помогите а?
Ответить с цитированием
  #2  
Старый 02.05.2011, 00:50
Аватар для Antidelphik
Antidelphik Antidelphik вне форума
Новичок
 
Регистрация: 28.04.2011
Сообщения: 67
Репутация: 10
По умолчанию

и вообще я знаю только один метод как можно заставить анимашку двигаться,но он какой-то корявый(я его знаю в теории, на практике у меня плохо пока что реализуется) подскажите пожалуйста если кто что получше знает...и попроще =)
Ответить с цитированием
  #3  
Старый 02.05.2011, 00:56
SawA SawA вне форума
Новичок
 
Регистрация: 09.03.2011
Сообщения: 57
Репутация: 10
По умолчанию

Цитата:
Сообщение от Antidelphik
я его рисую полосками,
так нарисуй одну полоску но шоб там 3 цвета сразу были вчем проблема?
Ответить с цитированием
  #4  
Старый 02.05.2011, 01:05
Аватар для Antidelphik
Antidelphik Antidelphik вне форума
Новичок
 
Регистрация: 28.04.2011
Сообщения: 67
Репутация: 10
По умолчанию

так,а как так нарисовать? смотри, тут одна тонкость
Код:
 with Image1.Canvas do
  begin
   brush.Color:=clWhite;
   rectangle(0,Image1.Height div 2,Image1.Width div 2,0);
   brush.Color:=clBlue;
   rectangle(0,Image1.Height div 3,Image1.Width div 2,Height div 6);
   brush.Color:=clRed;
   rectangle(0,Image1.Height div 2,Image1.Width div 2,Height div 3);
  end;

видишь? я сначала задаю большой прямоугольник, потом на нем как бы рисую ещё 2 прямоугольничка, так если двигать, то двигаться то всё равно будет только 1 из них
Ответить с цитированием
  #5  
Старый 02.05.2011, 01:11
SawA SawA вне форума
Новичок
 
Регистрация: 09.03.2011
Сообщения: 57
Репутация: 10
По умолчанию

Кстати если тебе просто нужно создать эфект перемещения к примеру по форме то перемещай объект image можно через тотже таймер или к примеру по кнопкам
Ответить с цитированием
  #6  
Старый 02.05.2011, 01:13
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Если рисовать на компоненте TImage то можно вообще просто его двигать:
Код:
image1.left:=x;
image1.top:=y;

А если надо именно на экране, то можно двигать саму форму. Только надо её границы убрать чтоб не мешались.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 02.05.2011 в 01:16.
Ответить с цитированием
  #7  
Старый 02.05.2011, 01:16
Аватар для Antidelphik
Antidelphik Antidelphik вне форума
Новичок
 
Регистрация: 28.04.2011
Сообщения: 67
Репутация: 10
По умолчанию

ааааа, афигеть, я ничего этого не знаю =( в делфи чайник, но пытаюсь что-то сделать, а как через таймер кстати делать я не знаю =(((
Ответить с цитированием
  #8  
Старый 02.05.2011, 01:07
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Анимация всегда делается одинаково:
1) стираем все
2) рисуем в новом месте

Соответственно тут то же самое:
1) рисуем серый прямоугольник на форме чтоб все стереть
2) рисуем флаг в новых координатах.

и не пойму, что мешает рисовать по координатам X и Y и по таймеру их менять.

Не проще так?
Код:
   brush.Color:=clWhite;
   rectangle(X,Y,X+100,Y+200);
   brush.Color:=clBlue;
   rectangle(X+100,Y,X+200,Y+200);
   brush.Color:=clRed;
   rectangle(X+200,Y,X+300,Y+200);
или что-нибудь в этом духе?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 02.05.2011 в 01:10.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:27.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025