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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 17.11.2010, 02:33   #1
jonec
 
Регистрация: 16.11.2010
Сообщений: 1
По умолчанию Стрелка часов

в коде прописана стрелка часов ,но она не двигаться чего-то хотя код на писан правильна вроде..я не могу разобраться в чём проблема.

задание:Создать часы,что бы они показывали правильное время.

Код:
var
Form1: TForm1;
x,y:integer;
ra,x1,y1,x2,y2:integer;
dsec,sec:real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var r:trect;
begin

{начала таймера}
Timer1.Enabled:=true;
{пряугольник}
with form1.Canvas do begin
r.Left:=150;
r.Top:=100;
r.Right:=750;
r.Bottom:=500;
Rectangle(r);
Form1.Canvas.Brush.Color:=clwhite;

end;
begin
{кардинаты стрелки}
x1:=450;
y1:=300;
x2:=625;
y2:=300;

dsec:=6*3.1415/360;
sec:=0;
Ra:=125;
//form1.Canvas.Rectangle(x1,y1,x2,y2) ;
Form1.Canvas.MoveTo(450,300); {начальная кордината}
Form1.Canvas.LineTo(625,300); {конечная координата}
x:=0;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
x:=x+1;
end;

{///////////////////////////////////////}

Form1.Canvas.MoveTo(450,300); {начальная кордината}
Form1.Canvas.LineTo(625,300); {конечная координата}

x1 := round(100+Ra*cos(sec));
y1 := round(100+Ra*sin(sec));


sec:=sec+dsec;

{///////////////////////////////////////}

end;
end
jonec вне форума
Старый 17.11.2010, 02:43   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Что-то у вас begin/end лишние какие-то... И я бы не советовал делать какие-то "sec:=sec+dsec;" - просто получайте системное время какой-нибудь функцией...

А почему у вас "конечная координата" фиксированная?

И то что у вас в "with form1.Canvas do begin" вообще не видно, его нужно в FormPaint'е писать... Впрочем как и рисование стрелок, а таймером просто перерисовывать форму...


UPD:
Код:
Var Form1: TForm1;

Implementation

{$R *.dfm}

Procedure TForm1.FormCreate(Sender: TObject);
Begin
Form1.Canvas.Brush.Color:=clWhite;
Timer1.Interval:=100;
Form1.DoubleBuffered:=True;
End;

Procedure TForm1.FormPaint(Sender: TObject);
Var R: TRect; Sec, tmp: Word;
Begin
With Form1.Canvas Do
      Begin
      DecodeDateTime(Now, tmp, tmp, tmp, tmp, tmp, Sec, tmp); // Uses ... , DateUtils;
      Form1.Caption:=IntToStr(Sec);
      Rectangle(150, 100, 750, 500);
      Ellipse(250, 100, 650, 500);
      MoveTo(450, 300);
      LineTo(Round(450-200*Cos((Sec*6+90)/180*Pi)), Round(300-200*Sin((Sec*6+90)/180*Pi)));
      Ellipse(443, 293, 457, 307);
      End;
End;

Procedure TForm1.Timer1Timer(Sender: TObject);
Begin
Repaint;
End;

End.
I am the First of Cyber Evolution...
I am the First to Program your Future...

Последний раз редактировалось DomiNick; 17.11.2010 в 03:07. Причина: UPD
DomiNick вне форума
Старый 17.11.2010, 09:45   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от jonec Посмотреть сообщение
задание:Создать часы,что бы они показывали правильное время.
Слушаемся, о повелитель !
Разрешите приступить ?

А может, стоит прочесть правила раздела, а ?
П.7 - о-о-очень интересный...

Последний раз редактировалось mihali4; 17.11.2010 в 09:49.
mihali4 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать нажата ли стрелка на клавиатуре Impuls1989 Общие вопросы Delphi 4 20.07.2010 20:04
часы показывают m часов, n минут и k секунд. Каковы будут показатели часов через p часов, q минут и r сек Паскалька^^ Помощь студентам 3 11.10.2009 19:41
Помогите разобраться с операцией ->(стрелка) RokDemon Общие вопросы C/C++ 2 03.05.2009 17:06
Стрелка у ярлыка Altera Windows 3 29.10.2008 14:45
Стрелка мыши Gladiator Общие вопросы Delphi 3 21.05.2008 20:56