AGB  ·  Datenschutz  ·  Impressum  







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

Terminplaner

Ein Thema von Z32 · begonnen am 1. Jun 2006 · letzter Beitrag vom 4. Jun 2006
Antwort Antwort
Seite 2 von 2     12   
hboy

Registriert seit: 16. Jan 2004
364 Beiträge
 
#11

Re: Terminplaner

  Alt 1. Jun 2006, 20:57
mh ich würds anders machen... TimeStamp + Boolean "abgearbeitet". So ist das einmalige abarbeiten garantiert bzw man kann den wert auf false lassen und 5 minuten draufaddieren.
Power is nothing without TControl
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#12

Re: Terminplaner

  Alt 3. Jun 2006, 18:45
Also ehrlich gesagt, blick ich jetzt gar nicht mehr durch. Ich hab jetzt schon verschiedenes Probiert, aber nichts funst. Es wäre sehr nett, wenn einer mal ein bisschen Code posten könnte, damit ich mal einen kleinen Anhlatsounkt bekomme. TimeStap, now, vergleichen

Ich möchte doch einfach nur schaffen, dass man eine Uhrzeit mit Datum eingeben kann die gespeichert wird und beim nächsten Programmstart wieder ausgelesen wird. Und wenn der Zeitpunkt erreicht ist, soll es "klingen". Das kann doch nicht so schwer sein, oder???
  Mit Zitat antworten Zitat
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#13

Re: Terminplaner

  Alt 3. Jun 2006, 20:34
Hi

nö, ist auch nicht sooo schwer.
Wie du die Zeichenfolge Datum und Uhrzeit in eine Textdatei speicherst weist du.
Auslesen kannst du diese Zeichenfolge in eine Stringvariable auch.
Beispielsweise diese Zeichenfolge: 03.06.2006 22:00:00

Wenn du nun diese eingelesene Zeichenfolge im Timer-Event vergleichst:

Delphi-Quellcode:
...
WeckZeit : String;
...

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if now >= StrToDateTime(WeckZeit) then
  begin
    ShowMessage('Riiiiiiing');
    Timer1.Enabled := false;
  end;
end;
sollte es einmal 'bimmeln'.

MJ
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#14

Re: Terminplaner

  Alt 3. Jun 2006, 23:24
so, habe doch gleich nochmal neu angefangen zu werkeln. ich habe das jetzt so gemacht wie in dem Beitrag vor mir beschrieben, doch an einer Stelle mekert der Compiler immer noch. Ich finde aber denn Fehler nicht.

Stelle im Code:
if now>= strtodatetime weckzeit then

Fehlermedlung des Compilers:
[Fehler] Unit1.pas(60): Es gibt keine überladene Version von 'StrToDateTime', die man mit diesen Argumenten aufrufen kann


Hier nochmal der gesamte neue Code. ich denke er ist diesmal realativ übersichtlich

Delphi-Quellcode:
var weckzeit: string;

procedure TForm1.Button1Click(Sender: TObject); //bei klick soll die weckzeit abgespeichert werden
begin
memo1.lines.SaveToFile('aus.txt');
showmessage('Die Ändernungen werden erst nach dem nächsten Programmstart wirksam');
end;

procedure TForm1.FormCreate(Sender: TObject); //beim öffnen soll die var weckzeit mit der Datei gefüttert werden
begin
memo3.lines.LoadFromFile('aus.txt');
weckzeit := memo3.Text;
label7.caption := (weckzeit);
end;

procedure TForm1.Timer1Timer(Sender: TObject); //der vergleich des timers
begin
label1.caption := timetostr (now);
label2.caption := datetostr (now);

if now>= strtodatetime weckzeit then
begin
showmessage('Ringgggg');
timer1.Enabled:=false;
end;
end;

end.
Also ich habe auch geprüft, ob die weckzeit richtig abgespeichrt wird und nachher auch wieder richtig in der var steht.
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#15

Re: Terminplaner

  Alt 4. Jun 2006, 00:57
Moin ...,
Zitat von Z32:
Fehlermedlung des Compilers:
[Fehler] Unit1.pas(60): Es gibt keine überladene Version von 'StrToDateTime', die man mit diesen Argumenten aufrufen kann
einfach mal in die OH schauen, aber so sollte es gehen.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject); //der vergleich des timers
begin
  label1.caption:= timetostr(now);
  label2.caption:= datetostr(now);

  if StrToDateTime(weckzeit) >= Now then begin
    Showmessage('Ringgggg');
    Timer1.Enabled:=false;
  end;
end;
Hatte Maja aber auch shcon so geschrieben!!

LG Mario
Mario
  Mit Zitat antworten Zitat
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#16

Re: Terminplaner

  Alt 4. Jun 2006, 12:21
Hi

if now>= strtodatetime weckzeit then Klammern?
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#17

Re: Terminplaner

  Alt 4. Jun 2006, 14:27
hey, och freu es klappt endlich. Ich hatte doch tatsächlich die Klammern vergessen, sorry.

Aber ein eigenartiges Phänomen ist jetzt aufgetreten, ich muss wenn die weckzeit erreicht ist und die Showmessage kommt immer 4 mal auf OK klicken bis die weg geht. Woran kann das den liegen??? Aber ich möchte ja eh im Endprogramm dann einen Sound abspielen lassen. Mal schaun ob das besser geht.

Aufjedenfall vielen dank für die hilfe.

PS: Wenn aber jemand eine Idee zu dem Showmessage-Problem hat würde es mich freuen, wenn ihr nochmal schreibt.
  Mit Zitat antworten Zitat
Maja Jessica

Registriert seit: 16. Apr 2005
Ort: Dortmund
95 Beiträge
 
Delphi 4 Standard
 
#18

Re: Terminplaner

  Alt 4. Jun 2006, 14:37
Hi,

eigentlich sollte, sobald der timer deaktiviert ist, die timerroutine nie mehr aufgerufen werden.
Bin mir jetzt aber nicht sicher ob das Programm bei ShowMessage die Bearbeitung anhält bis du auf OK geklickt hast, oder ob "parallel" dazu die "Timer1.enabled := false"-Anweisung ausgeführt wird.
Probiere es doch mal aus und vertausche die Reihenfolge zwischen
Timer-Abschalten und Showmessage.

MJ
  Mit Zitat antworten Zitat
Z32
(Gast)

n/a Beiträge
 
#19

Re: Terminplaner

  Alt 4. Jun 2006, 14:44
jo, daran lags. Es klappt jetzt Perfekt.

Aber was anderes ist mir aufgefallen

Immer wenn man das Programm startet, und die Weckzeit schon abgelaufen ist, kommt trotzdem die Showmessage mit Ring. Also wenn es z.b. um 14:00:00 klingeln soll und ich um 14:10:00 das Programm öffne kommt als erstest erst mal ein Ring und der Timer wird abgeschaltet. Wenn ich aber um 13:50:00 öffne und es halt um 14:00:00 erst klingel soll, dann kommt die Showmessage nicht, was ja auch richtig ist.

Ich finde diesen Effekt etwas störend, aber ich glaube das liegt an dem >=, oder? Und das lässt sich ja auch nicht ändern. Aber ich glaube ich habe eine Idee: Man könnte ja im Form.Create schreiben, das wenn die Weckzeit schon abgelaufen ist, dass dann halt irgentwas anderes passiert. Z.B showmessage('Termin schon vorbei')

Oder hat wer eine andere Idee??

//edit\\ Ich habs geschafft!

Ich habe einfach in Form.create geschrieben:
Delphi-Quellcode:
if weckzeit < datetimetostr (now) then
begin
timer1.enabled:=false;
showmessage('Termin verpasst');
Naja, klappt aufjedenfall Perfekt. Und nochmal vieln Dank füre eura Hilfe. //edit\\
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 15:47 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