Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.04.2007, 19:32   #11
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 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.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение фигуры по окружности &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