AGB  ·  Datenschutz  ·  Impressum  







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

Probleme bei Wecker

Ein Thema von TheMiller · begonnen am 15. Jun 2003 · letzter Beitrag vom 24. Jun 2003
Antwort Antwort
Seite 2 von 3     12 3      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#11
  Alt 22. Jun 2003, 02:00
Moin DJ-SPM,

ein kleines Beispiel:

Delphi-Quellcode:
var
  tiWecker : TTime;
  tiDiff : TTime;
  tiNow : TTime;

begin
  tiWecker := StrToTime('02:00');
  tiDiff := StrToTime('00:01');
  tiNow := Time;
  if (tiNow >= tiWecker) and (tiNow < (tiWecker+tiDiff)) then ShowMessage('Klingeling');
end;
Ein Tip noch: TIniFile kennt auch die Methoden WriteTime und ReadTime.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#12
  Alt 22. Jun 2003, 14:24
OK,

ja. wie soll ich's beschrieben: WEnn ich deinen Code benute, Christian, dann lädt er in diesem Zeitraum mehrere Showmessage Dialoge (jede Sekunde einen).

Lucky hat was von "globale Variable" gesagt, weisst du darüber bescheid? Es kann doch nicht so schwer sein, einen Wecker zu erstellen

Achso.. Christain:
Danke für die viele Hilfe...


CIao
DJ-SPM
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#13
  Alt 22. Jun 2003, 14:44
Moin DJ-SPM,

das war ein Beispiel wie Du einen Bereich abfragen kannst.

Ansonsten musst Du alles so deklariert haben wie bisher.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#14
  Alt 22. Jun 2003, 22:29
Hey Chris,

ich weiss, ich spiele mit deinen Nerven, aber eine Frage noch. Wie kann ich die Zeit und ZeitDifferenz durch iniEinträge erstezen? Habe es so probiert und er dudelt die ganze Zeit die Musik ab. Puh, ich hasse Wecker...

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  tiWecker : TTime;
  tiDiff : TTIme;
  tiNow : TTIme;
  ini : TInifile;
  time1 : TTime;
  time2 : TTIme;
  begin
ini:=Tinifile.Create('C:\Programme\SPM-APSS\settings.ini');
try
time1:=ini.Readtime('Wecker','time1',time);
time2:=ini.Readtime('Wecker','Time2',time);
  tiwecker := time1;
  tidiff := time2;
  tiNow := time;
  if (tiNow >= tiWecker) and (tiNow < (tiWecker+tiDiff)) then Mediaplayer1.Play;
finally
ini.free;
end;
end;
end.
HILFE!!!!! plz

[€dit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 23. Jun 2003, 12:27
Moin DJ-SPM,

hast Du denn mal kontrolliert, was in time1 und time2 steht?
Immerhing übergibst Du als Defaultwert die aktuelle Zeit.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#16
  Alt 23. Jun 2003, 16:18
Hey,

Ja, habe ich. time1 war 19:05 und time 2 19:07. Die aktuelle Zeit war 19:00 Uhr und da fings dann an... Was mache ich denn bloß falsch??

Ciao
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#17
  Alt 23. Jun 2003, 16:23
Moin DJ-SPM,

die Zeit tiDiff gibt die Differenz vor also z.b. 1 Minute.
Du hast aber 19 Stunden 7 Minuten als Bereich zugelassen.
Dass dann lange funktioniert ist klar

Das Beispiel enthielt ja:
Delphi-Quellcode:
  tiWecker := StrToTime('02:00');
  tiDiff := StrToTime('00:01');
also Weckzeit 2 Uhr morgens, es darf bis 2 Uhr 1 geweckt werden.

Deshalb ja auch:

tiWecker+tiDiff
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#18
  Alt 23. Jun 2003, 21:21
Ok, ich denke das ist jetzt so ziemlich das Ende deiner Nerven, sowie das Ende meiner Gedult...

Ich habe jetzt den Code so, nachden ich deinen Thread gelesen habe...
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  tiWecker : TTime;
  tiDiff : TTime;
  tiNow : TTime;
  time1 : String;
  time2 : String;
  ini : TInifile;
begin
ini:=TInifile.Create('C:\Programme\SPM-APPS\settings.ini');
try
  time1 :=ini.ReadString('Wecker','time1',text);
  time2 :=ini.ReadString('Wecker','time2',text);
[color=#f60000] tiWecker := StrToTime(time2); //(21:16)
  tiDiff := StrToTime(time1); //(21:15)[/color]
  tiNow := Time;
  if (tiNow >= tiWecker) and (tiNow < (tiWecker+tiDiff)) then MediaPlayer1.Play;
  finally
  ini.free;
  end;
  end;
  end.
Naja, was macht's?? Klingeling... auch noch um 21:20... in 10 Jahren um 22:20 bestimmt auch noch. *anfallbekomm*

Wo ist der Fehler?

[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#19
  Alt 23. Jun 2003, 21:59
Moin DJ-SPM,

Zitat von DJ-SPM:
Ok, ich denke das ist jetzt so ziemlich das Ende deiner Nerven,
Wohl eher nicht, hat mehr was von einer Herausforderung

Also versuch' ich das mal anders zu erklären:

Bei mir haben die Variablen folgende Aufgabe:
  1. tiWecker
    Diese Variable soll die Weckzeit beeinhalten
  2. tiDiff
    Diese Variable soll die Anzahl Minuten beinhalten, um die die Weckzeit überschritten werden darf, bevor der Alarm nicht mehr ausgelöst werden soll, und keine Uhrzeit

In Deinem Beispiel wären es dann also 21 Stunden, 15 Minuten. Oder in Minuten: (21*60)+15 = 1275 Minuten.
Das heisst: Die Weckzeit dürfte in Deinem Beispiel um 1275 Minuten überschritten werden, bevor sie nicht mehr gültig ist.

Dein Code wäre völlig in Ordnung, nur die Werte die Du verwendest sind es nicht.

Ach, von wegen
Zitat von DJ-SPM:
*anfallbekomm*
Benutze doch bitte die Delphi Tags, damit Daniel B das nicht plötzlich sagt
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#20
  Alt 23. Jun 2003, 22:42
Ok, danke für deine Hilfe

nun, jetzt kommt das große ABER:
Es will auch so nicht so, wie wir wollen. Ich denke, dass das Prog so rechnet:

Code:
if (tiNow >= tiWecker) and (tiNow < (tiWecker+tiDiff)) then MediaPlayer1.Play
WENN (jetzige Zeit größer als Weckzeit aus INI) UND (jetzige Zeit kleiner als Weckzeit+Differenz) ist, dann Spiele lied ab...

das wäre vollkommen richtig. Er will nur nicht. Kann es sein, dass es an:

-ini.Readtime,
-If-Anweisung,
-Timerintervall (bei mir 1000),
-an Inifile selbst,
-Stringumrechnung

liegt? Hier nochmal mein Code, so wie er (berichtigt ist):

Code:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  tiWecker : TTime;
  tiDiff  : TTIme;
  tiNow   : TTIme;
  ini     : TInifile;
  time1    : TTime;
  time2    : TTime;
  begin
ini:=Tinifile.Create('C:\Programme\SPM-APSS\settings.ini');
try
time1:=ini.Readtime('Wecker','Time1',time);
time2:=ini.Readtime('Wecker','Time2',time);
  tiwecker := Time1;
  tidiff := Time2;
  tiNow  := time;
  if (tiNow >= tiWecker) and (tiNow < (tiWecker+tiDiff)) or (tiNow then MediaPlayer1.Play;
finally
ini.free;
end;
end;
end.
Achso, mein Ereignis liegt im OnTimer Ereignis.
Hm. kannst du es mal bitte versuchen, bei dir zu coden. Auch, wenn's geht mit Ini-File-Auslesung.

Da hast du deine Herausforderung *g*
Achso, danke nochmal. Bekommst auch mein ganzes Projekt, wenn du willst (nein, ist nicht nur der wecker *g*)

Achso, noch eins:
Was sind Delphi Tags. Werde sie benutzen, wenn ich weiss, was das ist

Ciao
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:36 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