| Autor |
Beitrag |
kongreddgrass
      
Beiträge: 238
Win 98, Win 2000, Win Xp Prof.,Linux 8.2 Prof
Delphi 6
|
Verfasst: So 10.08.03 18:29
Hi,
ich hab ein Problem. Wie täte der Code für einen Wecker lauten. Ich plaziere in den Form zwei Textfelder eine für Stunden und eine für Minuten. Und noch ein Button, der den Wecker dann laufen lässt. Ihr müsst dass ja nicht extra für mich proggen, aber ich will ja nur eine Hilfe für die Programmierung.
Mike
PS: Meine Pizze tät sonst rauchen (ungesund) 
_________________ o.o
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: So 10.08.03 18:34
Das Stickwort heißt TTimer. Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender:TObject); begin Timer1.Enabled:=True; end;
procedure TForm1.Timer1Timer(Sender:TObject); begin if AnsiSameText(Edit1.Text+':'+Edit2.Text,copy(TimeToStr(now),1,5)) then ShowMessage('Wecker'); end; | Code nicht getestet. Damit der Code funzt, must du einen Timer erstellen und Enabled auf False setzen (sonst äuft auch schon vor dem Click des Buttons  )
maxk
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
kongreddgrass 
      
Beiträge: 238
Win 98, Win 2000, Win Xp Prof.,Linux 8.2 Prof
Delphi 6
|
Verfasst: So 10.08.03 19:07
Hi,
bei mir funzt das kompilieren, aber wenn ich in irgendeinem Textfeld 1 reinschreibe, dann öffnet sich aber keine Show Message.
Weiß nicht woran das liegt, der Code schaut schon normal aus.
Mike 
_________________ o.o
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: So 10.08.03 19:10
Hmm, wie war das noch gleich als ich das gemacht habe...
irgendwie so:
ich habe ein maskedit mit dem text "__:__:__" (oder so?? auf jeden fall dass das format so ist wie das von timetostr (siehe onlinehilfe)) und das was da drin stand dann einfach mit timetostr verglichen.
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Mo 11.08.03 07:58
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
The-FoX
      
Beiträge: 203
Win XP
D6 Pers
|
Verfasst: Mo 18.08.03 04:13
Is zwar umständlicher aber es müsste imho klappen.
In die globalen Variablen a: integer und b : integer eintragen. Dann:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35:
| procedure TForm1.Timer1Timer (Sender:TObject) var a :integer; begin timer1.interval := 1000; if a < 60 then a := a + 1; if a = 59 then a := 0; edit1.text := inttostr(a); end;
procedure TForm1.Timer2Timer (Sender:TObject)
begin timer2.intervall := 60 000; if b > 60 then b := b + 1; if b = 59 then b := 0; edit2.text := inttostr(b); end;
procedure TForm1.Timer3Timer (Sender:TObject) begin timer3.intervall := 1000; if spinedit1.value = b then if spinedit2.value = a then showmessage ('Hans'); end;
procedure Tform1.button1click (Sender:TObject) begin timer1.enabled := true; timer2.enabled := true; timer3.enabled := true; a := 0; b := 0; button1.caption := ('Zeit zurücksetzen') end; |
hoffe mal ich hab geholfen.
|
|
schitho
      
Beiträge: 288
XP Home SP2
D2005 Prof
|
Verfasst: Di 19.08.03 18:07
Ich würde auch SpinEdit statt dem Textfeld empfehlen (hab ich zumindest mei meinem Wecker so gemacht).
Du kann bei SpinEdit mit MaxValue und MinValue den Zahlenbereich festlegen.
Für die Stunden könnte das dann so aussehen:
Delphi-Quelltext 1: 2: 3: 4:
| : SpinStunden.MinValue:=0; SpinStunden.MaxValue:=23; : |
Außerdem könntest als Service gleich beim Aufruf die aktuelle Zeit als Voreinstellung anzeigen lassen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure Form1.FormCreate(Sender: TObject); var std, min, sec, msec: Word;
begin DecodeTime(time, std,min,sec,msec); SpinMinuten.Value:=min; SpinStunden.Value:=std; end; |
_________________ (Sorry! Leider ewiger Delphi-Neuling)
|
|
ex-wishmaster
Hält's aus hier
Beiträge: 1
D7
|
Verfasst: Sa 23.10.04 23:00
Titel: Simpler Wecker mit Delphi
Hallo!
Da ich zufällig heute Abend einen kleinen Wecker geschrieben habe poste ich den Quelltext einfach mal hier. Ich hoffe er kann etwas helfen bei dem Problem.
Falls jemand Verbesserungsvorschläge hat bitte mitteilen! Bin noch Neuling in Delphi.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144:
| unit Unit3;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, XPMan, ExtCtrls, StdCtrls, Buttons, Spin, Menus;
type TForm3 = class(TForm) GroupBox1: TGroupBox; Edit1: TEdit; GroupBox2: TGroupBox; GroupBox3: TGroupBox; Edit2: TEdit; Edit3: TEdit; Timer1: TTimer; Timer2: TTimer; XPManifest1: TXPManifest; BitBtn1: TBitBtn; SpinEdit1: TSpinEdit; SpinEdit2: TSpinEdit; PopupMenu1: TPopupMenu; Programmbeenden1: TMenuItem; Weckerschlieen1: TMenuItem; procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure SpinEdit2Exit(Sender: TObject); procedure SpinEdit1Exit(Sender: TObject); procedure Programmbeenden1Click(Sender: TObject); procedure Weckerschlieen1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private public end;
var Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.Timer1Timer(Sender: TObject); begin edit1.Text:=FormatDateTime('hh:nn', now);
edit3.Text:=FormatDateTime(':ss', now); end;
procedure TForm3.Timer2Timer(Sender: TObject); begin if edit1.text=edit2.text then begin timer2.Enabled:=false; beep; showmessage('Sie wollten geweckt werden!!!'); end end;
procedure TForm3.BitBtn1Click(Sender: TObject); begin if spinedit1.text='0' then spinedit1.text:='00'; if spinedit1.Text='1' then spinedit1.Text:='01'; if spinedit1.text='2' then spinedit1.text:='02'; if spinedit1.text='3' then spinedit1.text:='03'; if spinedit1.text='4' then spinedit1.text:='04'; if spinedit1.text='5' then spinedit1.text:='05'; if spinedit1.text='6' then spinedit1.text:='06'; if spinedit1.text='7' then spinedit1.text:='07'; if spinedit1.text='8' then spinedit1.text:='08'; if spinedit1.text='9' then spinedit1.text:='09'; if spinedit2.text='0' then spinedit2.text:='00'; if spinedit2.Text='1' then spinedit2.Text:='01'; if spinedit2.text='2' then spinedit2.text:='02'; if spinedit2.text='3' then spinedit2.text:='03'; if spinedit2.text='4' then spinedit2.text:='04'; if spinedit2.text='5' then spinedit2.text:='05'; if spinedit2.text='6' then spinedit2.text:='06'; if spinedit2.text='7' then spinedit2.text:='07'; if spinedit2.text='8' then spinedit2.text:='08'; if spinedit2.text='9' then spinedit2.text:='09'; edit2.Text:=(spinedit1.Text)+(':')+(spinedit2.Text); end;
procedure TForm3.SpinEdit2Exit(Sender: TObject); begin if spinedit2.Text='' then begin ShowMessage('Feld darf nicht leer sein!'); Spinedit2.Text:='0'; end end;
procedure TForm3.SpinEdit1Exit(Sender: TObject); begin if spinedit1.Text='' then begin ShowMessage('Feld darf nicht leer sein!'); spinedit1.Text:='0'; end end;
procedure TForm3.Programmbeenden1Click(Sender: TObject); begin application.terminate; end;
procedure TForm3.Weckerschlieen1Click(Sender: TObject); begin form3.Hide; end;
procedure TForm3.FormCreate(Sender: TObject); begin end;
end. |
Auf der Form wurden folgenden Elemente platziert:
Quelltext 1: 2: 3: 4:
| 1x BitButton 2x Spinedit 2x Timer 3x Edit |
Andere Elemente dienen nur dem Aussehen des Weckers. Er ist erweiterbar, denkbar wäre z.b. Wecken mit Sound oder Deaktivieren/Aktivieren des Weckers. Gibt noch viele Möglichkeiten, aber für heute Abend reicht mir der vorliegende Wecker aus.
Falls irgendwelche Fragen auftauchen, einfach stellen. Ich werde versuchen sie zu beanworten mit meinem eingeschränkten Wissen. Falls ich irgendwas falsch gemacht habe oder wenn ich etwas hätte besser machen können dann bitte sagen 
_________________ ---
greetz Wishmaster
|
|
|