![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
![]() ой, извини bargest, сразу не увидела что ты написал, если по твоему коду я как бы помещаю на форму нужного мне размера (размера флага) Image и таймер, потом рисую код (ну если что ошибки переделаю)в обработчике кликанья таймера и у меня Image будет двигаться по форме?
|
#17
|
||||
|
||||
![]() да не ) вот это
Код:
то есть получается, мой флаг это картинка на Image1 и надо эту картинку просто двигать по всей Image, вот Код:
я на самом деле думала так: взяла просто растянула форму до размеров экрана, на неё во весь её размер поместила Image1 и планировала нарисовать на кусочке от Image1 флаг, а потом каким-то образом, который я ещё не до конца осмыслила, с помощью application.processmessages заставить этот кусочек двигаться по Image, как раз выглядело бы как-будто он по периметру экрана |
#18
|
||||
|
||||
![]() не кликанья таймера, а события таймера. на таймер никто не кликает, он сам срабатывает каждые N миллисекунд.
Да, и не забудь нарисовать предварительно этот самый флаг. Можно даже его нарисовать в пейнте и в свойставх TImage загрузить как картинку. Тогда и маяться с программным рисованием не надо. Хотя размер EXE файла на выходе заметно вырастет. jmp $ ; Happy End! The Cake Is A Lie. |
#19
|
||||
|
||||
![]() ну короче =) разберусь с этим утром и попробую всё сделать =) спасибо большое =))
|
#20
|
||||
|
||||
![]() Я тут всё таки ещё кое что свое набросала
Код:
implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); procedure Flag (k,x,l,y:integer; c:TColor); begin with Image1.Canvas do begin brush.Color:=c; rectangle(k,x,l,y); end; end; var c:TColor; i:integer; begin with Image1.Canvas do begin brush.Color:=clBlack; fillrect(Image1.ClientRect); c:=clWhite; Flag (0,Image1.Height div 6,Image1.Width div 2, 0, c); c:=clBlue; Flag (0,Image1.Height div 3, Image1.Width div 2, Image1.Height div 6, c); c:=clRed; Flag (0,Image1.Height div 2, Image1.Width div 2, Image1.Height div 3, c); end; for i:=0 to Image1.Width div 2 do begin c:=clWhite; Flag (i,Image1.Height div 6,Image1.Width div 2 + i, 0, c); application.ProcessMessages; sleep(10); c:=clBlue; Flag (i,Image1.Height div 3,Image1.Width div 2 + i, Image1.Height div 6, c); application.ProcessMessages; sleep(10); c:=clRed; Flag (i,Image1.Height div 2, Image1.Width div 2 + i, Image1.Height div 3, c); application.ProcessMessages; sleep(10); end; пробовала добавить for для того чтобы по вертикали тоже шел,но не идет ( Последний раз редактировалось Antidelphik, 02.05.2011 в 03:21. |
#21
|
|||
|
|||
![]() Держи пример и будет тебе счастье я сделал под определенный размер формы но думаю не сложно будет автоматически определять размер формы и взависимости от него задавать новые значения вместо вставленых мной цифр
![]() |
#22
|
|||
|
|||
![]() А забыл добавить у Image в свойстве Picture выбери свой флаг
![]() ![]() |
#23
|
||||
|
||||
![]() ааа, спасибо =) попробую разобраться
Последний раз редактировалось Antidelphik, 02.05.2011 в 13:10. |