Задание "При нажатии на кнопку "Старт" шар начинает двигаться по кругу, при нажатии кнопки "Стоп" останавливается". Этот код не работает.
И другое "При нажатии на кнопку "Старт" метка двигается слева на право до края формы, где и останавливается"
Помогите пожалуйста! Или подскажите где посмотреть. Спасибо!
procedure TForm1.Button1Click(Sender: TObject);
var k,spd,a : integer ;
begin
k:=60;
a:=10 ;
spd:=50;
Timer1.Enabled:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var k,spd,cx,cy,a : integer ;
begin
cx:=240+Shape1.Width div 2 ;
cy:=184+Shape1.Height div 2;
a:=a+spd;
Shape1.Left:=cx+Round(cos(a)*k);
Shape1.top:=cx+Round(sin(a)*k);
end;
Движение картинки по кругу
Модератор: Модераторы
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
А перерисовать сдвигаемый компонент? Он то должен получить команду, что местоположение изменилось.
Код: Выделить всё
....
Shape1.Left:=cx+Round(cos(a)*k);
Shape1.top:=cx+Round(sin(a)*k);
Share1.Repaint;
-
Mirage
- энтузиаст
- Сообщения: 881
- Зарегистрирован: 06.05.2005 20:29:07
- Откуда: Russia
- Контактная информация:
Двигать по 50 радиан за шаг? Многовато будет!
Если spd подразумевается в градусах, то надо переводить:
Хотя 50 градусов тоже многовато, не?
Если spd подразумевается в градусах, то надо переводить:
Код: Выделить всё
Shape1.Left:=cx+Round(cos(a/180*pi)*k);
Shape1.top:=cx+Round(sin(a/180*pi)*k);Хотя 50 градусов тоже многовато, не?
Vstr писал(а):Или подскажите где посмотреть
Сделал так, что на 12 часов - красный, на 4 - синий, а на 8 - зеленый.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
