AGB  ·  Datenschutz  ·  Impressum  







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

Wecker - Abruf Problem

Ein Thema von Z32 · begonnen am 12. Mär 2006 · letzter Beitrag vom 15. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Z32
(Gast)

n/a Beiträge
 
#1

Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:03
Hallo,

Ich habe da eine Frage.

Also ich möchte einen Wecker programmieren. Geht auch alles schon bis auf die erweiterungs Funktion. Also der Benutzer hat die möglichkeit ein Datum einzugeben und um wieviel Uhr es an diesem Datum dann klingel soll. Beide eingaben schreibe ich getrennt in eine txt Datei. Also eine txt Datei für Datum und eine für Uhrzeit. Dann habe ich im Timer Ereignis dieses geschrieben:

Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
var dat, tim, datdat, timtim: string;
begin
datdat := datetostr (date);
timtim := timetostr (time);
datum.Lines.LoadFromFile('datum.txt');
uhrzeit.Lines.LoadFromFile('uhrzeit.txt');
dat := (datum.text);
tim := (uhrzeit.text);
if dat = datdat then
if tim = timtim then
sndplaysound(PChar('Glockenspiel.wav'),snd_sync);
end;
Für Erklärung: dat und tim sind die ausgelesenen Werte und datdat und timtim sind Uhrzeit und Datum real. Und datum.lines... und uhrzeit.lines... sind zwei Memo Felder, wo angezeigt werden soll, wann es klingel, also was man abgespeichert hat.

So und jetzt habe ich das Problem, dass die Werte anscheinend nicht ausgelesen werden. Es klingelt nähmlich nicht, auch wenn die Eingaben stimmen. Und ich weiß leider nicht wo es hakt.

Kann mir vielleicht einer helfen ???
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#2

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:10
Zitat:
Delphi-Quellcode:
if dat = datdat then
if tim = timtim then
sndplaysound(PChar('Glockenspiel.wav'),snd_sync);
Du solltest die if-Blöcke mit einem begin und end umschließen, ich weiß nicht ob er das auch ohne so macht.

Delphi-Quellcode:
if dat = datdat then
begin
  if tim = timtim then sndplaysound(PChar('Glockenspiel.wav'),snd_sync);
end;
Oder einfach in eine Anweisung stecken

if (dat = datdat) AND (tim = timtim) then sndplaysound(PChar('Glockenspiel.wav'),snd_sync);
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:11
Ich vermute einfach, dass der Timer nicht die genaue Zeit "trifft", prüfe besser, ob die Weckzeit kleiner (vor) oder gleich der aktuellen Zeit ist.
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:15
wie schreibst du die daten denn in die txt dateien?
Sie müssen genau mit dem layout vor aus dem computer ausgelesenen zeit übereinstimmen...
Martin
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#5

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:23
Vielen Dank,
für die Schnellen Antworten, aber das mit den If Abfragen habe ich zwar direkt geändert, daran liegt es nicht.
Zu dem Layout. Also so mach ich es Datum: 12.03.2006 Und Uhrzeit: 18:30:25 Und das System mach es doch genauso,
oder irre ich mich ???
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#6

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:34
Schau es dir doch einfach an wie es das System macht

Ich weiß zwar gerade nicht wie es das system macht, ic bin mir aber sicher SO wird es nicht sein wenn es nicht funktioniert. Schreibe dir doch noch einfach 2 kleine Befehle rein um dir das ausgeben zu lassen wie das System die Uhrzeit/Datum anzeigt.


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 19:39
@ Flare: Doch das System macht es genau so...hab grade selber nachgeschaut

gut vom layout stimmt alles...aber ich glaub ich weiß jetzt worans liegt
Der Sound wird nur abgespielt, wenn zeit und datum genau mit deiner Vorgabe übereinstimmen.
Und darin liegt der fehler...Der Timer aktuallisiert alle 1s, dass heißt 1s nachdem die Zeit erreicht wurde hört der sound schon wieder auf. Wenn die 1.sekunde in der wave datei stille ist hört man den sound natürlich nicht...
Schreib einfach mal statt dem sound:
showmessage ('Zeit erreicht'); Wenn dann eine Meldung erscheint liegt es wirklich an dem oben genannten problem.
Das kann man aber ganz leicht beheben. Schreib dann einfach in die then anweisung über begin und end;
timer1.Enabled := false; Dann hört der Timer bei der Zielzeit auf zu Zählen und der Sound müsste abgespielt werden.

So ich hoffe ich hab jetzt nicht ganz daneben gehauen
Martin
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#8

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 20:02
HUHU,

Leider klappt es immer noch nicht. Habe alles ausprobiert.

Mir ist da aber noch ne andere Idee gekommen. Ich lese die txt Dateien ja in ein Memo Feld ein, um dann den Inhalt aus dem Memo Feld in string Variablen zu kopieren. Kann es sein, dass das nicht möglich ist ??? Gibt es einen Befahel, um eine Txt Datei in einem String zu öffenen ???

Ich würde mich über weitere Antworten sehr freuen
  Mit Zitat antworten Zitat
Benutzerbild von netscanner
netscanner

Registriert seit: 2. Dez 2005
Ort: Dieburg
280 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 20:09
dafür gibt es einen befehl...
schau mal nach assignfileassignfile...
Daran kanns aber eigentlich nicht liegen, ich hab es genau so probiert (nur mit showmessage) und das klappt...
Martin
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#10

Re: Wecker - Abruf Problem

  Alt 12. Mär 2006, 20:20
Mit "showmessage" klappst ???

Also bei mir noch nicht, was mache ich denn falsch ??? Hier nochmal der Code mit "Showmessage"

Delphi-Quellcode:
procedure TForm1.Timer2Timer(Sender: TObject);
var dat, tim, datdat, timtim: string;
begin
datdat := datetostr (date);
timtim := timetostr (time);
label5.Caption := (datdat);
label4.Caption := (timtim);
datum.Lines.LoadFromFile('datum.txt');
uhrzeit.Lines.LoadFromFile('uhrzeit.txt');
dat := (datum.text);
tim := (uhrzeit.text);
if (dat = datdat) AND (tim = timtim) then showmessage ('Zeit erreicht');
end;
Hat vielleicht noch einer eine andere Idee, oder sieht einen Fehler im Code ???
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:20 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