AGB  ·  Datenschutz  ·  Impressum  







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

Analoge (Stopp)uhr

Ein Thema von Aike · begonnen am 16. Jul 2005 · letzter Beitrag vom 16. Jul 2005
Antwort Antwort
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#1

Analoge (Stopp)uhr

  Alt 16. Jul 2005, 11:54
Hallo,

ich möchte für ein Programm eine Stoppuhr nutzen, die eine verbleibende Zeit abläuft (und bei 12 Uhr anhält). Ich habe dazu die AnalogClock aus den JEDI-Komponenten nutzen wollen, aber die Eigenschaft "TimeSet" hat bei mir keine Auswirkungen, somit wird immer die aktuell Zeit verwendet, was nicht der Fall sein soll.

Ich habe es mit anClock.TimeSet:=StrToTime('12:00:00'); probiert, zeigte aber keine direkten Auswirkungen auf die Uhr. Als ich showmessage(TimeToStr(anClock.TimeSet)); abgefragt habe, kam auch [12:00:00] zurück.
Kennt einer von euch vielleicht eine andere analoge Uhr, oder weiß, wie ich mit dem TimeSet umgehen muss?

Vielen Dank für eure Hilfe
Achim
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#2

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 13:24
Ich hab keine Ahnung, was du eigentlich von uns möchtest ...

Wenn du meinst, dass eine Uhr laufen und nach 12 Stunden was machen soll:

TJVTFAlarm (Jv TimeFramework)
TimerIntervall:=43200000
Enabled:=true
Das Event heißt dann OnAlarm

Wenn irgendetwas um 12 Uhr passieren soll:

JVClock (Jv Visual)
Alarmenabled:=true
AlarmHour:=12
Das Event heißt wieder einmal OnAlarm
Oder alternativ jedes mal bei OnGetTime die aktuelle mit der gewünschten Zeit vergleichen..

Oder aber du schreibst einfach mal verständlich, worauf du hinaus willst
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#3

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 13:33
Ich erkläre es besser nochmals:

Über ein Edit-Feld kann der Benutzer eine gewisse Zeit eingeben (in Sekunden). Beim Drücken auf den Startknopf soll eine analoge Uhr die eingegebe Zeit ablaufen, sodass die Zeiger nach x Sekunden auf 12 Uhr stehen.
Das einzige, was die Uhr sonst noch können muss, ist, um 12 Uhr auch anzuhalten.

[edit]Ich habe es mit der Eigenschaft TimeOffset und einem komischen Variablengewirr geschafft, zumindest die Minuten und Stunden hinzubiegen. Leider kann man damit nicht den Sekundenzeiger beeinflussen.
Sollte doch noch eine bessere analoge Uhr im iNet verfügbar sein, wüsste ich gerne einen Link dort hin [/edit]
Achim
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#4

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 17:22
Dann könntest du auch die TJvClock nehmen.
Die musst du dann bearbeiten.

Es müsste reichen,
Delphi-Quellcode:
function TJvClock.GetSystemTime: TDateTime;
begin
  Result := SysUtils.Time;
  if Assigned(FOnGetTime) then
    FOnGetTime(Self, Result);
end;

procedure TJvClock.GetTime(var T: TJvClockTime);
var
  MSec: Word;
begin
  with T do
    DecodeTime(GetSystemTime, Hour, Minute, Second, MSec);
end;
anzupassen.

Es müsste dann also anstatt der Systemzeit 12:00:00 - eingabe genommen werden.
Da brauchst du dann noch einiges an Rechen- und Denkarbeit, aber das sollte wohl machbar sein (mit probieren auf jeden Fall).

Edit: Alternativlösung: Die Uhr-mal-prozeduren rauskopieren und z.B. auf eine Paintbox (oder Bitmap+Bitblt) anwenden. Dann reicht ein Timer und ne Paintbox und evtl. ein Bmp
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#5

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 17:27
Ja, das sieht gut aus, ist aber keine analoge Uhr (mit Zeigern )
Achim
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#6

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 17:30
TJvClock.ShowMode:=scAnalog;
Jetzt schon.

PS: Beachte die Alt.-Lösung!
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#7

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 17:37
TJvClock hat bei mir diese Eigenschaft nicht. Sollte die Komponente veraltet sein?
Achim
  Mit Zitat antworten Zitat
Jarmen_Kell

Registriert seit: 17. Mär 2005
188 Beiträge
 
#8

Re: Analoge (Stopp)uhr

  Alt 16. Jul 2005, 18:10
Ich habe Jedi 3.00. Dann könnte es sein, dass du eine alte Version hast.

Ich habe mal die Zeichenprozeduren in ein Txt-Dokument kopiert und angehenkt.

Kannst dir entweder die neuen Jedis besorgen oder das aus dem Anhang in deine Prozeduren einfügen.
Möglicherweise muss du noch einige Werte bearbeiten


Edit: Hatte was vergessen, neue Version (18:12)
Angehängte Dateien
Dateityp: txt tjvclockauszug_150.txt (11,7 KB, 12x aufgerufen)
  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 04:37 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