![]() |
|
|
#1
|
|||
|
|||
![]() Помогите пожайлуста сделать программу с TImage и таймером, вообщем я не знаю как рисовать произвольные линии по нажатию на таймер, но начало всегда в (0, Height), цвет тоже random.
Код:
procedure TForm4.Timer1Timer(Sender: TObject); var x,y,i: integer; begin x:=0; y:=Image1.Height; Image1.Canvas.LineTo(x,y); Timer1.Enabled:=true; x:=0; y:=i; Image1.Canvas.LineTo(x,y); |
#2
|
||||
|
||||
![]() Цитата:
![]() Цитата:
Чтобы координаты "куда рисовать" были рандомными, надо им присвоить рандом: Код:
x:= random(Image1.Width); y:= random(Image1.Height); Рандомный цвет делается как-то так: Код:
Image1.Canvas.Pen.Color:=Random($FFFFFF); Timer1.Enabled:=true в Вашем коде лишнее. Он и так будет включен постоянно. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() i у вас нигде не задается, и будет нулем. Тогда у вас линии будут все по левому краю.
Зачем в функции таймера включать таймер еще раз? Вы рисуете две линии - одну вверх, а вторую вниз по левому краю. линии будут толщиной в 1 пиксель |
Этот пользователь сказал Спасибо ChinYan за это полезное сообщение: | ||
Brons14 (12.05.2012)
|
#4
|
|||
|
|||
![]() Сделал так
Код:
procedure TForm4.Timer1Timer(Sender: TObject); var x,y: integer; begin Image1.Canvas.MoveTo(0,Height); Randomize; x:= random(Image1.Width); y:= random(Image1.Height); Image1.Canvas.LineTo(x,y); Image1.Canvas.Pen.Color:=Random($FFFFFF); end; |
#5
|
||||
|
||||
![]() Randomize нужно в начале программы (например, в Form4Show). Это довольно медленная функция, и делать её каждый раз по таймеру бессмысленно.
Линии выходят из точки чуть за краем, да. Я ошибся, надо брать MoveTo(0,Height-1); Рамки никакой нет, разумеется. Может быть и есть какие-то свойства в TImage для задания стандартных рамок, но я ими в жизни не пользовался. jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
Brons14 (12.05.2012)
|
#6
|
|||
|
|||
![]() если сделать так
Код:
procedure TForm4.Timer1Timer(Sender: TObject); var x,y: integer; begin Image1.Canvas.MoveTo(0,Height-1); x:= random(Image1.Width); y:= random(Image1.Height); Image1.Canvas.LineTo(x,y); Image1.Canvas.Pen.Color:=Random($FFFFFF); end; то без изменений( может MoveTo не там нужно писать, Randomize исправил |
#7
|
||||
|
||||
![]() Код:
Image1.Canvas.Pen.Color:=Random($FFFFFF); Image1.Canvas.MoveTo(0,Image1.Height-1); x:= random(Image1.Width); y:= random(Image1.Height); Image1.Canvas.LineTo(x,y); |