AGB  ·  Datenschutz  ·  Impressum  







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

Analog Clock

Ein Thema von Jonas · begonnen am 19. Sep 2006 · letzter Beitrag vom 20. Sep 2006
Antwort Antwort
Jonas

Registriert seit: 5. Feb 2005
266 Beiträge
 
Delphi 2007 Professional
 
#1

Analog Clock

  Alt 19. Sep 2006, 17:52
Huhu. Ich hab' mir vor einiger Zeit mal eine Analog-Clock gecodet. Alles auch schön und gut. Nun wollte ich es aber so umsetzen das ich eine Uhr gecodet hab und diese öfters (in verschiedenen Varianten anezgein lassen möchte). Sprich. Eine uhr...und diese in 10 Varianten anzeigen lassen möchte. Ich hab nur überhaupt keine Ahnung wie ich das machen könnte. *aufm schlauch steh*....ich fänds irgendwie doof nun 10 uhren zu coden oô.....ich weiss das es irgendwie geht, nur der weg dahin fehlt mir...bitte um Rat ....

Edit:
Desweiteren wollte ich fragen ob/wie es möglich ist die selbstgemalten Zeiger durch Images zu ersetzen?!
  Mit Zitat antworten Zitat
HalloDu

Registriert seit: 24. Apr 2006
Ort: Oelde
267 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Analog Clock

  Alt 19. Sep 2006, 17:58
Was meinst du mit verschiedenen Varianten? Andere Stile sie zu zeichnen?
Frederic H.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Analog Clock

  Alt 19. Sep 2006, 18:13
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]
  Mit Zitat antworten Zitat
Jonas

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

Re: Analog Clock

  Alt 20. Sep 2006, 12: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
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Analog Clock

  Alt 20. Sep 2006, 16:17
In Turbopower Orpheus gibts Uhren. Analoge mit Zeigern und digitale. Hatte mir mal den Source angesehen : die machen sich nicht die Mühe, den Hintergrund zu zeichnen, sondern benutzen logischerweise ein TImage. "Gezeichnet" werden da lediglich die Zeiger bzw. die Digitalanzeige. Guck dir das mal an.

P.S.: sehe jetzt erst die Grafik. Ist das nicht sogar eine Orpheus-Uhr ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:41 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