Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi digitale Uhr mit 5-sekunden-beep (https://www.delphipraxis.net/55568-digitale-uhr-mit-5-sekunden-beep.html)

tankm26 23. Okt 2005 13:15


digitale Uhr mit 5-sekunden-beep
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Moin!

Das soll eine digitale Uhr werden, die anfangs bei 0:00:00 steht und alle fünf sekunden 'beept'

nur irgendwo steckt da der wurm drin.

auch ein stop-button muss ich noch einbauen,

auch das einstellen der uhr ist nocht nicht ausgereift: die anzahl der beeps sollte dann angeglichen werden.



Das is' ja noch alles recht einfach und eigentlich net schlimm, oder?


Wieland

MrKnogge 23. Okt 2005 13:30

Re: digitale Uhr mit 5-sekunden-beep
 
Wo genau ist denn der Wurm drin ?

Wenn du nicht schreibst, was genau der Fehler ist und wo es bei dir harkt, dann darfst du hier auch nicht allzuviele Antworten erwarten.

gruss

Nils_13 23. Okt 2005 13:35

Re: digitale Uhr mit 5-sekunden-beep
 
Zitat:

Zitat von MrKnogge
Wo genau ist denn der Wurm drin ?

Wenn du nicht schreibst, was genau der Fehler ist und wo es bei dir harkt, dann darfst du hier auch nicht allzuviele Antworten erwarten.

gruss

Er weiß es selber nicht.

ichbins 23. Okt 2005 13:38

Re: digitale Uhr mit 5-sekunden-beep
 
du solltest die labels nur als Output nehmen und nicht wieder irgendwie darauf zugreifen.

Nimm EINE Variable, in der du die Zahl der Sekunden speicherst.

die erhöhst du dann jede Sekunde (per Timer) um 1. //ACHTUNG: DER TIMER IST UNGEAU

dann machst du einen Ausgabelabel, nicht drei, der alles auf einmal ausgibt. Ungefähr so:
Delphi-Quellcode:
var
  secounds:integer
[...]

function myinttostr(i:integer):string;
begin
  result:=inttostr(i);
  if length(result)=1 then
    result:='0'+result;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  sec,min,hr,anzahlbeeps:integer;
begin
  inc(secounds);
  if (secounds mod 5) = 0 then
    beep;
  anzahlbeeps:=secounds div 5;
  sec:=secounds mod 60;
  min:=secounds div 60;
  hr:=min div 60;
  min:=min mod 60;
  zeitausgabelabel.caption:=inttostr(hr)+':'+myinttostr(min)+':'+myinttostr(sec);
  anzahlbeepsausgabelabel.caption:=inttostr(anzahlbeeps);
end;

MrKnogge 23. Okt 2005 13:42

Re: digitale Uhr mit 5-sekunden-beep
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Nils_13
Er weiß es selber nicht.

Natürlich weis er was nicht funktioniert bzw falsch läuft, sonst hätte er wohl kaum einen Grund diesen Thread zu erstellen.

gruss

tankm26 23. Okt 2005 14:36

Re: digitale Uhr mit 5-sekunden-beep
 
ein wurm: wenn man per edit-feld die zeit verändert sollte sich der timer einstellen, sprich trotzdem nur auf 5 und 0 einen 'beep' abgeben


das mit dem timer, da muss ich mal schauen



edit: heißt
if (secounds mod 5) = 0 then beep;
das er 'beept', wenn der REST null ist?

MrKnogge 23. Okt 2005 15:15

Re: digitale Uhr mit 5-sekunden-beep
 
genau
x mod y gibt dir den Rest von x / y

gruss

turboPASCAL 23. Okt 2005 15:40

Re: digitale Uhr mit 5-sekunden-beep
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von tankm26
ein wurm: wenn man per edit-feld die zeit verändert sollte sich der timer einstellen, sprich trotzdem nur auf 5 und 0 einen 'beep' abgeben

dann schau mal die Variable sek an, die muss auch zurück gesetzt werden...


Zitat:

Zitat von tankm26
edit: heißt
if (secounds mod 5) = 0 then beep;
das er 'beept', wenn der REST null ist?

Ja, so ist das.

tankm26 23. Okt 2005 16:38

Re: digitale Uhr mit 5-sekunden-beep
 
danke euch allen, ich schaue mir den letzten Vorschlag erstmal genauer an


edit1: das beepen funktioniert ab der 1.minute nicht mehr richtig, da schaue ich mal genauer in den quellcode und überleg' mis was

turboPASCAL 23. Okt 2005 17:28

Re: digitale Uhr mit 5-sekunden-beep
 
Sowas liegt am timer der vor- oder nachläuft. Es geht auch so z.B.:

Delphi-Quellcode:
procedure TDigitaluhr.TimerTimer(Sender: TObject);
begin
  ...
  ...

  if StrToInt(lsekunden.caption) mod 5 = 0 then
  begin
    ...
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr.
Seite 1 von 2  1 2      

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