|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
22.04.2007, 19:32 | #11 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 298
|
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } FCenterX, FCenterY, FRadius, FAngle: integer; procedure RunButton; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} { TForm1 } procedure TForm1.RunButton; const delta = 6; //угол поворота begin //вращаем по часовой стрелке Button1.Left := FCenterX - round(FRadius*cos(FAngle*Pi/180)); //поворот по Х Button1.Top := FCenterY - round(FRadius*sin(FAngle*Pi/180)); //поворот по Y FAngle := FAngle + delta; //приращение угла поворота end; procedure TForm1.FormCreate(Sender: TObject); begin BorderStyle := bsDialog; //запретим менять размеры формы Timer1.Enabled := false; //отключим таймер, будем запускать по нажатию на кнопку Timer1.Interval := 50; //скорость вращения кнопки FCenterX := Width div 2; //центр по X FCenterY := Height div 2; //центр по Y FRadius := 100; //радиус поворота FAngle := 0; //начальный угол RunButton; //установим кнопку в начальное положение end; procedure TForm1.Button1Click(Sender: TObject); begin Timer1.Enabled := not Timer1.Enabled; //запускаем и останавливаем вращение кнопки {поскольку фокус ввода по умолчанию стоит на кнопке то запуск и остановка производится по нажатию на Enter} end; procedure TForm1.Timer1Timer(Sender: TObject); begin RunButton; //вращаем кнопку end; end.
Не надо ничего усложнять. Все достаточно тривиально.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Движение фигуры по окружности | &RiU | Помощь студентам | 3 | 31.10.2009 20:39 |
Движение окружности и отрезка. | Ev@ngel | Компоненты Delphi | 0 | 18.04.2008 22:16 |
помогите сделать движение на нажатие кнопки | shepelin | Общие вопросы Delphi | 1 | 11.12.2007 10:11 |
Движение по окружности | Mickle | Общие вопросы Delphi | 3 | 13.04.2007 16:24 |
Анимация. Движение по окружности. | Albenous | Общие вопросы Delphi | 1 | 11.04.2007 14:57 |