Thema: Delphi Analog Clock

Einzelnen Beitrag anzeigen

Jonas

Registriert seit: 6. Feb 2005
266 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Analog Clock

  Alt 20. Sep 2006, 13:48
Zitat von HalloDu:
Was meinst du mit verschiedenen Varianten? Andere Stile sie zu zeichnen?
Joa ich hab' hier mal so ein Beispiel wie ich das gerne machen würde mit angehängt.

Zitat von Der_Unwissende:
HI,
irgendwie ist dein Problem (mir) noch nicht all zu klar. Woran genau scheiterst du denn? Was möchtest du denn an der Uhr ändern?

Also an sich ist alles was du brauchst ein wenig OOP. Kenntnis der Design-Pattern ist (wie immer) auch nicht von Nachteil.
Du solltest deine Uhr sehr modular aufbauen. Das heißt hier insbesondere, dass die Anzeige und die Logik (abfragen der Uhrzeit, bewegen der Zeiger, ...) getrennt vorliegen. Die Repräsentation (das Aussehen der Uhr) solltest du zudem von einer abstrakten Basisklasse ableiten oder ein Interface erstellen und dieses in allen anderen implementieren.
An sich reicht es, wenn du hier die Uhrzeiger auf eine bestimmte Position setzen kannst (und natürlich die Uhr zeichnen). Was diese Methoden dann konkret zeichnen sollte halt erst in den verschiedenen Uhren implementiert werden. Wo also die Uhrzeit herkommt (oder die Position der Zeiger oder oder oder) ist der Uhr-Anzeige egal, die soll nur in ihrem Stil zeichnen. Sollten die Uhren alle gleich groß sein und die gleichen Zeiger verwenden, kannst du sogar den Teil in eine eigene Unit auslagern und musst dich dann nur um das zeichnen des Hintergrunds der Uhr kümmern.
Da ein Uhr sich aus verschiedenen Teilen zusammen setzt, die sich nicht gegenseitig kennen brauchen (z.B. die einzelnen Zeiger, der Hintergrund, die Logik um die Uhrzeit aktuell zu halten, ...) solltest du hier mit dem Fabrik-Muster arbeiten. An sich gibt es hier drei Schlagworte, die sich gut für eine nähere Betrachtung eignen: Depency Injection, Abstract Factory und Factory, dies sind alles so genannte Design Pattern, die du hier verwenden kannst (nicht musst).

Gruß Der Unwissende

[ADD]
Ok, gleiche Frage nochmal von Frederic, du siehst ist wirklich unklar gestellt deine Frage
[/ADD]
Hmm, was du da so beschrieben hast leuchtet mir irgendwie nur zur Hälfte ein. Ich meine schon klar das ich es trennen muss, nur ich weiss noch nicht so genau wie ich das wirklich umsetzten kann. Zumal ich möchte ja nicht nur eine Uhr in mehren Stilen anzeigen lassen, sondern diese auch nach möglichkeit alle zusammen Anzeigen lassen mit einer Uhr. Ich denke nun schon zu wissen wie man es machen könnte, aber alles nur so ziemlich wage.
Miniaturansicht angehängter Grafiken
aero_glass_-_clock_tile_properties_206.jpg  
  Mit Zitat antworten Zitat