AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeigerbewegungen einer Uhr darstellen

Offene Frage von "ballerino"
Ein Thema von Martha · begonnen am 15. Dez 2003 · letzter Beitrag vom 22. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
Martha

Registriert seit: 14. Dez 2003
6 Beiträge
 
#1

Zeigerbewegungen einer Uhr darstellen

  Alt 15. Dez 2003, 09:09
Ich soll eine analoge Uhr programmieren.
Kann mir jemand bei der Umsetzung helfen?
Ich habe mir schon Gedanken gemacht, das ja die Zeiger immer vom Mittelpunkt ausgehen und dann einen Endpunkt brauchen mit X- und Y-Koordinaten. Kann man die irgendwie berechnen, mit dem Kreisumfang oder so? Wie schafft man es den Start der Uhr auf die aktuelle Uhrzeit bezogen zu timen???
  Mit Zitat antworten Zitat
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#2

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 15. Dez 2003, 09:17
Hallo Martha,

die Lösung für die Koordinaten solltest Du unter den trigonometrischen Funktionen in Deinem Mathebuch finden. Tipp: Du befindest Dich in einem karthesischen Koordinatensystem, ein Dreieck mit den Eckpunkten (0,0), (x,0), (x,y) hat demnach für x<>0 bei (x,0) immer einen rechten Winkel...

Die aktuelle Systemzeit kannst Du mit der Funktion Now ermitteln. Sieh einmal in der Delphi Online-hilfe (OH) nach.
gruß, choose
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 15. Dez 2003, 09:31
Aus meinem Delphibuch:
Eine Form mit Timerkomponente ist alles was man braucht

1. Funktion zur Winkelberechnung:

Delphi-Quellcode:
procedure TForm1.Berechne_xy(winkel: Real; var xi,yi: Integer);
var x,z: real;
Begin
(*Winkel korrigieren um Viertelkreis zurück*)
   winkel := winkel - pi/2;
   
  (*Koordinaten berechnen*)
   x:=Cos(Winkel);
   y:=Sin(Winkel);
   x:= x* (Width div 3);
   y:= y* (Height div 3);
   
   x:= x + (Width div 2);
   y:= y + (Height div 2);
   
   xi:= Trunc(x);
   yi:= Trunc(y);
end;

Timerroutine :

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var winkel: Integer
    hour, min, sec, msec: Word;
    x,y: Integer;
begin
   Refresh;
   DecodeTime(Now, hour, min, sec, msec);
   (*Sekundenzeiger*)
   Berechne_xy(((2*pi)/60)*sec, x, y);
   Canvas.MoveTo(Width div 2, Height div 2);
   Canvas.LineTo(x,y);
 
   (*Minutenzeiger*)
   Berechne_xy(((2*pi)/60)*min, x, y);
   Canvas.MoveTo(Width div 2, Height div 2);
   Canvas.LineTo(x,y);
   
   (*Stundenzeiger*)
   if hour > 12 then
      hour := hour - 12;
   Berechne_xy(((2*pi)/12)*hour, x, y);
   Canvas.MoveTo(Width div 2, Height div 2);
   Canvas.LineTo(x,y);

end;

Wie gesagt aus meinem Delphibuch.. ich übernehme keine verantwortung *g*

mfg
smk
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
Martha

Registriert seit: 14. Dez 2003
6 Beiträge
 
#4

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 16. Dez 2003, 18:05
Hi Smockey!
Vielen Dank für deinen Quellcode. Leider funzt der bei mir irgendwie nicht.
Das Problem: [Fehler] Unit1.pas(47): Ungültige Compileranweisung: 'hour'
Hat jemand eine Ahnung, was ich da machen muss? Ich verschicke das Programm auch, wenn ich das allein nicht hinbekomme!

Vielen, vielen Dank für die bisherige Hilfe! Es hat mir wirklich schon sehr viel weiter geholfen!
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 16. Dez 2003, 18:19
Hallo Martha,

Zitat von Smokey:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var winkel: Integer; // <--- hier fehlte das Semikolon
    hour, min, sec, msec: Word;
    x,y: Integer;
begin
 // ...
end;
ich glaub da fehlte einfach ein Semikolon.

mfG
mirage228
David F.
  Mit Zitat antworten Zitat
Martha

Registriert seit: 14. Dez 2003
6 Beiträge
 
#6

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 16. Dez 2003, 20:27
Danke Mirage228! Das war tatsächlich der Fehler! Dass ich da nicht selbst drauf gekommen bin...

Hi Smokey!
Ich muss bei meinem Projekt auch Quellen angeben. Kannst du mir ma bitte den Buchtitel, Autor und Verlag von deinem Delphi-Buch geben???
  Mit Zitat antworten Zitat
Martha

Registriert seit: 14. Dez 2003
6 Beiträge
 
#7

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 17. Dez 2003, 15:07
Ich habe nun ein weiteres Problem: Ich muss meine digitale und analoge Uhr per Veerbung von Klassen darstellen, kann mir da jemand helfen?
2. Frage: Kann jemand versuchen, mir mal den Quellcode von den Zeigerbewegungen im Detail zu erklären für meine Präsentation?
Danke schon mal im Voraus! 8)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 17. Dez 2003, 15:17
Für eine neue Frage, erstell bitte einen neunen Thread, danke.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Smokey
Smokey

Registriert seit: 10. Nov 2003
Ort: Puerto de la Cruz
158 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 17. Dez 2003, 15:49
Hu, hier die Buchdaten:

Buchtitel: Jetzt lerne ich Delphi

Verlag: Markt + Technik

Autor: Thomas Binziger

mfg
Smk
Greif dir ein gutes Stück Fleisch auf deinem Weg nach draussen !!!
  Mit Zitat antworten Zitat
ballerino

Registriert seit: 22. Apr 2007
11 Beiträge
 
#10

Re: Zeigerbewegungen einer Uhr darstellen

  Alt 22. Apr 2007, 17:54
sorry wenn das jetzt eine dumme Frage ist, aber was für ein Befehl ist denn
berechne_xy ???? Ich arbeite (und das nicht freilwillig ) mit Delphi 5...vielleicht kann ich deswegen nichts damit anfangen? wäre toll wenn mir jemand weiterhelfen könnte?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz