ich hatte Zeit und habe ein Programm geschrieben, das die Uhrzeit grafisch anzeigt.
Der praktische Nutzen geht gegen Null, ich habe es aus Langeweile geschrieben und wollte es euch nicht vorenthalten.
(Endlich kann man auch längere Quelltexte einstellen, ohne das Forum zu sprengen)
Im Anzeigemenu kann man verschieden Uhren einstellen:
-Arabisch : Analoguhr mit arabischen Ziffern
-Römisch : Analoguhr mit römischen Ziffern
-Digital : Uhrzeit als Text
-24 Stunden : Eine Uhr nur mit Stundenzeiger, sowas gibt es tatsächlich als Armbanduhr z.B. hier zu kaufen:
https://www.amazon.de/24-stunden-uhr/s?k=24+stunden+uhr (soll keine Werbung sein, ich habe nur keinen Wikipedia-Eintrag gefunden).
-Binär : zeigt die Zeit binär an (mit "Leuchtdioden")
-Berliner Uhr : Infos gibt es hier: https://de.wikipedia.org/wiki/Berlin-Uhr ,gibt es auch zu kaufen.
Ich wußte nicht, das es sowas gibt, gesehen habe ich die Berliner Uhr im TV in der Sendung "Berlin - Schicksalsjahre einer Stadt 1975".
Im Alarmmenu kann eine Alarmzeit eingestellt werden, das Programm spielt dann einen (vorher eingestellten) WAV.-FLAC.- oder OGG.-Sound ab. (also die Sound-Formate welche PB unterstützt)
Die Einstelleungen werden in AppData/Roaming gespeichert.
P.S.
Diese vielen roten Wellenlinien beim Eingeben des Textes sollen wohl eine Rechtschreibprüfung sein.
Wie kann man die Ausschalten oder auf Deutsch umstellen ?
Weiss das jemand ?
P.P.S.
Das kann grafisch noch was aufgepoppt werden...
Code: Alles auswählen
EnableExplicit
#WinW=300
#WinH=240
#WinTitle="Analoguhr"
;-Init
InitSound()
;-Enum
Enumeration
#Ziffernblatt
#Arabisch1
#RoemischI
#Digital
#VierundzwanzigStunden
#Binaer
#BerlinUhr
EndEnumeration
Enumeration 1
#Canvas
EndEnumeration
;-Const
;-Structure
Structure sAlarm
Stunde.i
Minute.i
Ton.i
Ein.i
Name.s
EndStructure
;-Global
Global event.l,mx=#WinW/2,my=#WinH/2,uhr,sticky,wx,wy
Global prefs.s=GetUserDirectory(#PB_Directory_ProgramData)+"Analoguhr.prefs"
Global Alarm.sAlarm
;-Use
UseOGGSoundDecoder()
UseFLACSoundDecoder()
;-Define
;-Declare
;-Include
;-Macro
Procedure InitGui()
ExamineDesktops()
OpenPreferences(prefs)
wx=ReadPreferenceInteger("Xpos",(DesktopWidth(0)-#WinW)/2)
wy=ReadPreferenceInteger("Ypos",(DesktopHeight(0)-#WinH)/2+50)
uhr=ReadPreferenceInteger("Uhr",#Arabisch1)
sticky=ReadPreferenceInteger("Sticky",#True)
Alarm\Name=ReadPreferenceString("Alarmtonname","")
ClosePreferences()
If OpenWindow(1,wx,wy,#WinW,#WinH,#WinTitle,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget)=0:End:EndIf
If CreateMenu(0,WindowID(1))
MenuTitle("Anzeige")
MenuItem(1,"Arabisch")
MenuItem(2,"Römisch")
MenuItem(3,"Digital")
MenuItem(4,"24 Stunden")
MenuItem(5,"Binär")
MenuItem(6,"Berliner Uhr")
MenuBar()
MenuItem(16,"Immer im Vordergrund"):SetMenuItemState(0,6,sticky):StickyWindow(1,sticky)
MenuBar()
MenuItem(17,"Ende")
MenuTitle("Alarm")
MenuItem(18,"Alarm Ein"+Chr(9)+"Alt+E")
MenuItem(19,"Alarm Aus"+Chr(9)+"Alt+A")
MenuItem(20,"Alarmton einstellen")
EndIf
AddKeyboardShortcut(1,#PB_Shortcut_Alt|#PB_Shortcut_E,18)
AddKeyboardShortcut(1,#PB_Shortcut_Alt|#PB_Shortcut_A,19)
SetMenuItemState(0,uhr,1)
CanvasGadget(#Canvas,0,0,#WinW,#WinH)
LoadFont(1,"Courier New",10)
LoadFont(2,"Courier New",10,#PB_Font_Bold)
LoadFont(3,"Arial",12)
CreateImage(#Ziffernblatt,#winw,#winh)
CreateImage(#VierundzwanzigStunden,#winw,#winh)
CreateImage(#Binaer,#winw,#winh)
CreateImage(#BerlinUhr,#winw,#winh)
AddWindowTimer(1,1,1000)
Alarm\Ton=0
If Alarm\Name:Alarm\Ton=LoadSound(#PB_Any,Alarm\Name):EndIf
EndProcedure
Procedure AlarmtonEinstellen()
Protected.s n=OpenFileRequester("Alarmton einstellen...",Alarm\Name,"Sound-Dateien | *.wav;*.ogg",1)
If n
Alarm\Ton=LoadSound(#PB_Any,n)
If Alarm\Ton:Alarm\Name=n:EndIf
EndIf
EndProcedure
Procedure UhrZeichnen()
Dim zr.s(11)
Protected c,a
Protected.f x1,y1,x2,y2,r,l,tw,th,x,y
Protected z.s
For c=0 To 11
Read.s zr(c)
Next
;Zifferblatt
If StartDrawing(ImageOutput(#Ziffernblatt))
Box(0,0,#winw,#winh,$ffffff)
Circle(#winw/2,#winh/2,3,$111111)
For c=0 To 354 Step 6
r=Radian(c)
l=90
If c%30=0:l=85:EndIf
x1=l*Cos(r)+mx
y1=l*Sin(r)+my
x2=98*Cos(r)+mx
y2=98*Sin(r)+my
LineXY(x1,y1,x2,y2,$111111)
Next
StopDrawing()
EndIf
;Zifferblatt24
If StartDrawing(ImageOutput(#VierundzwanzigStunden))
Box(0,0,#winw,#winh,$ffffff)
Circle(#winw/2,#winh/2,3,$111111)
For c=0 To 357 Step 3
r=Radian(c)
l=90
If c%15=0:l=85:EndIf
x1=l*Cos(r)+mx
y1=l*Sin(r)+my
x2=98*Cos(r)+mx
y2=98*Sin(r)+my
LineXY(x1,y1,x2,y2,$111111)
Next
DrawingFont(FontID(1))
DrawingMode(#PB_2DDrawing_Transparent)
l=75
For c=1 To 24
r=Radian((c-6)*15)
z=Str(c)
tw=TextWidth(z)/2
th=TextHeight(z)/2
x1=l*Cos(r)+mx
y1=l*Sin(r)+my
DrawText(x1-tw,y1-th,z,$111111)
Next
StopDrawing()
EndIf
;#Arabisch1 - Arabische Ziffern
CopyImage(#Ziffernblatt,#Arabisch1)
l=70
If StartDrawing(ImageOutput(#Arabisch1))
DrawingFont(FontID(1))
DrawingMode(#PB_2DDrawing_Transparent)
For c=1 To 12
r=Radian((c-3)*30)
z=Str(c)
tw=TextWidth(z)/2
th=TextHeight(z)/2
x1=l*Cos(r)+mx
y1=l*Sin(r)+my
DrawText(x1-tw,y1-th,z,$111111)
Next
StopDrawing()
EndIf
;#RoemischI - Römische Ziffern
CopyImage(#Ziffernblatt,#RoemischI)
l=65
If StartDrawing(ImageOutput(#RoemischI))
DrawingFont(FontID(1))
DrawingMode(#PB_2DDrawing_Transparent)
For c=1 To 12
r=Radian((c-3)*30)
z=zr(c-1)
tw=TextWidth(z)/2
th=TextHeight(z)/2
x1=l*Cos(r)+mx
y1=l*Sin(r)+my
DrawText(x1-tw,y1-th,z,$111111)
Next
StopDrawing()
EndIf
FreeImage(#Ziffernblatt)
;Binär
If StartDrawing(ImageOutput(#Binaer))
Box(0,0,#winw,#winh,$ffffff)
;LineXY(#winw/2,0,#winw/2,#winh,0)
a=16
For c=0 To 4
DrawingMode(#PB_2DDrawing_Default)
Circle(110+c*20,40,6,$000085)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(1))
z=Str(a)
DrawText((110+c*20)-TextWidth(z)/2,50,z,0)
a/2
Next
a=32
For c=0 To 5
DrawingMode(#PB_2DDrawing_Default)
Circle(100+c*20,100,6,$000085)
Circle(100+c*20,160,6,$000085)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(1))
z=Str(a)
DrawText((100+c*20)-TextWidth(z)/2,110,z,0)
DrawText((100+c*20)-TextWidth(z)/2,170,z,0)
a/2
Next
StopDrawing()
EndIf
;Berliner Uhr
If StartDrawing(ImageOutput(#BerlinUhr))
Box(0,0,#winw,#winh,$ffffff)
;LineXY(#winw/2,0,#winw/2,#winh,0)
DrawingMode(#PB_2DDrawing_Outlined)
For c=0 To 3
Box(c*67+20,20,60,40,0):FillArea(c*67+30,30,0,$000085)
Box(c*67+20,70,60,40,0):FillArea(c*67+30,80,0,$000085)
Box(c*67+20,170,60,40,0):FillArea(c*67+30,180,0,$0067A8)
Next
For c=0 To 10
Box(c*24+20,120,20,40,0):FillArea(c*24+30,130,0,$0067A8)
Next
StopDrawing()
EndIf
If uhr=#Digital:ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,40):EndIf
EndProcedure
Procedure ZeigerZeichnen() ;wird jede Sekunde aufgerufen
Protected d=Date(),x
Protected s=Second(d),ls=90 ;Länge Sekundenzeiger
Protected m=Minute(d),lm=95 ;Länge Minutenzeiger
Protected h=Hour(d),lh=60 ;Länge Stundenzeiger
Protected lh24=80 ;Länge Stundenzeiger 24-Stunden Uhr
Protected.f xs,ys,rs,xm,ym,rm,xh,yh,rh,x24,y24,r24
Protected.s u=FormatDate("%hh:%ii:%ss %dd.%mm.%yyyy",d),da=FormatDate("%dd.%mm.%yyyy",d),z
If Alarm\Ein=#True
If h=Alarm\Stunde And m=Alarm\Minute
PlaySound(Alarm\Ton)
Alarm\Ein=#False
;SetMenuItemState(0,4,alarm)
SetWindowTitle(1,#WinTitle)
EndIf
EndIf
;Zeiger berechnen für #Arabisch1 und #RoemischI
;Sekundenzeiger
rs=Radian((s-15)*6)
xs=ls*Cos(rs)+mx
ys=ls*Sin(rs)+my
;Minutenzeiger
rm=Radian((m-15)*6+s/10)
xm=lm*Cos(rm)+mx
ym=lm*Sin(rm)+my
;Stundenzeiger
rh=Radian((h-3)*30+(m/2))
xh=lh*Cos(rh)+mx
yh=lh*Sin(rh)+my
Select uhr
Case #Arabisch1
If StartDrawing(CanvasOutput(#Canvas))
DrawImage(ImageID(#Arabisch1),0,0)
LineXY(mx,my,xs,ys,$111111)
LineXY(mx,my,xm,ym,$111111)
LineXY(mx,my,xh,yh,$111111)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(2))
DrawText((#winw-TextWidth(da))/2,0,da,$111111)
StopDrawing()
EndIf
Case #RoemischI
If StartDrawing(CanvasOutput(#Canvas))
DrawImage(ImageID(#RoemischI),0,0)
LineXY(mx,my,xs,ys,$111111)
LineXY(mx,my,xm,ym,$111111)
LineXY(mx,my,xh,yh,$111111)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(2))
DrawText((#winw-TextWidth(da))/2,0,da,$111111)
StopDrawing()
EndIf
Case #Digital
If StartDrawing(CanvasOutput(#Canvas))
Box(0,0,#winw,#winh,$ffffff)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(2))
DrawText((#winw-TextWidth(u))/2,0,u,$111111)
StopDrawing()
EndIf
Case #VierundzwanzigStunden
r24=Radian((h-6)*15+m/4)
x24=lh24*Cos(r24)+mx
y24=lh24*Sin(r24)+my
If StartDrawing(CanvasOutput(#Canvas))
DrawImage(ImageID(#VierundzwanzigStunden),0,0)
LineXY(mx,my,x24,y24,$111111)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(2))
DrawText((#winw-TextWidth(da))/2,0,da,$111111)
StopDrawing()
EndIf
Case #Binaer
If StartDrawing(CanvasOutput(#Canvas))
DrawImage(ImageID(#Binaer),0,0)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(2))
DrawText((#winw-TextWidth(da))/2,0,da,$111111)
;Zeit in Klartext anzeigen
DrawText(#winw-80,160,RSet(Str(s),2,"0"),0)
DrawText(#winw-80,100,RSet(Str(m),2,"0"),0)
DrawText(#winw-80,40,RSet(Str(h),2,"0"),0)
DrawingMode(#PB_2DDrawing_Default)
z=RSet(Bin(h),5,"0") ;Stunde
For x=0 To 4
If Mid(z,x+1,1)="1"
Circle(110+x*20,40,6,$0000E0)
EndIf
Next
z=RSet(Bin(m),6,"0") ;Minute
For x=0 To 5
If Mid(z,x+1,1)="1"
Circle(100+x*20,100,6,$0000E0)
EndIf
Next
z=RSet(Bin(s),6,"0") ;Sekunde
For x=0 To 5
If Mid(z,x+1,1)="1"
Circle(100+x*20,160,6,$0000E0)
EndIf
Next
StopDrawing()
EndIf
Case #BerlinUhr
If StartDrawing(CanvasOutput(#Canvas))
DrawImage(ImageID(#BerlinUhr),0,0)
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID(2))
DrawText((#winw-TextWidth(u))/2,0,u,$111111)
x=h/5 ;5 Stunden
While x
FillArea((x-1)*67+30,30,0,$0000E0)
x-1
Wend
x=h%5 ;Stunden
While x
FillArea((x-1)*67+30,80,0,$0000E0)
x-1
Wend
x=m/5 ;5 Minuten
While x
FillArea((x-1)*24+30,130,0,$1CF3F3)
If x%3=0:FillArea((x-1)*24+30,130,0,$0000E0):EndIf
x-1
Wend
x=m%5 ;Minuten
While x
FillArea((x-1)*67+30,180,0,$1CF3F3)
x-1
Wend
StopDrawing()
EndIf
EndSelect
EndProcedure
Procedure AlarmEingeben2()
Protected event,AlarmWindow,OKGadget,AbbruchGadget,TextGadget1,TextGadget2,StundeGadget,MinuteGadget,RelativGadget
Protected Relativ=#PB_Checkbox_Unchecked
Protected Titel.s="Alarm eingeben"
AlarmWindow=OpenWindow(#PB_Any,#PB_Ignore,#PB_Ignore,280,120,Titel,#PB_Window_Tool|#PB_Window_ScreenCentered,WindowID(1))
If AlarmWindow
If Alarm\Stunde<0
Alarm\Minute=Minute(Date()):Alarm\Stunde=Hour(Date())
If Alarm\Minute<30:Alarm\Minute=30:Else:Alarm\Minute=0:Alarm\Stunde+1:EndIf
If Alarm\Stunde>=24:Alarm\Stunde-24:EndIf
EndIf
StickyWindow(AlarmWindow,#True)
StickyWindow(1,#True)
SetGadgetFont(#PB_Default,FontID(3))
TextGadget1=TextGadget(#PB_Any,10,10,60,24,"Stunde:",#PB_Text_Center)
TextGadget2=TextGadget(#PB_Any,100,10,60,24,"Minute:",#PB_Text_Center)
StundeGadget=SpinGadget(#PB_Any,10,36,60,24,0,23):SetGadgetText(StundeGadget,Str(Alarm\Stunde))
MinuteGadget=SpinGadget(#PB_Any,100,36,60,24,0,59):SetGadgetText(MinuteGadget,Right("0"+Str(Alarm\Minute),2))
RelativGadget=CheckBoxGadget(#PB_Any,180,40,120,24,"Relativ"):SetGadgetState(RelativGadget,Relativ)
OKGadget=ButtonGadget(#PB_Any,10,80,110,24,"OK")
AbbruchGadget=ButtonGadget(#PB_Any,140,80,110,24,"Abbrechen")
;SetActiveGadget(StundeGadget)
AddKeyboardShortcut(AlarmWindow,#PB_Shortcut_Return,20)
Repeat
event=WaitWindowEvent()
If event=#PB_Event_Menu
If EventMenu()=20 ;Return oder Enter gedrückt
If Relativ=#PB_Checkbox_Checked
Alarm\Minute+Minute(Date())
Alarm\Stunde+Hour(Date())
If Alarm\Minute>=60:Alarm\Minute-60:Alarm\Stunde+1:EndIf
If Alarm\Stunde>=24:Alarm\Stunde-24:EndIf
EndIf
CloseWindow(AlarmWindow)
StickyWindow(1,sticky)
ProcedureReturn #True
EndIf
EndIf
If event=#PB_Event_Gadget
Select EventGadget()
Case OKGadget
If Relativ=#PB_Checkbox_Checked
Alarm\Minute+Minute(Date())
Alarm\Stunde+Hour(Date())
If Alarm\Minute>=60:Alarm\Minute-60:Alarm\Stunde+1:EndIf
EndIf
CloseWindow(AlarmWindow)
StickyWindow(1,sticky)
ProcedureReturn #True
Case AbbruchGadget
CloseWindow(AlarmWindow)
StickyWindow(1,sticky)
ProcedureReturn #False
Case StundeGadget
Select EventType()
Case #PB_EventType_Up
Alarm\Stunde+1
If Alarm\Stunde=24:Alarm\Stunde=0:EndIf
SetGadgetText(StundeGadget,Str(Alarm\Stunde))
Case #PB_EventType_Down
Alarm\Stunde-1
If Alarm\Stunde=-1:Alarm\Stunde=23:EndIf
SetGadgetText(StundeGadget,Str(Alarm\Stunde))
Case #PB_EventType_Change
Alarm\Stunde=Val(GetGadgetText(StundeGadget))
If Alarm\Stunde<0:Alarm\Stunde=0:EndIf
If Alarm\Stunde>=23:Alarm\Stunde=23:EndIf
EndSelect
Case MinuteGadget
Select EventType()
Case #PB_EventType_Up
Alarm\Minute+1
If Alarm\Minute=60
Alarm\Minute=0
Alarm\Stunde+1
If Alarm\Stunde=24:Alarm\Stunde=0:EndIf
SetGadgetText(StundeGadget,Str(Alarm\Stunde))
EndIf
SetGadgetText(MinuteGadget,Right("0"+Str(Alarm\Minute),2))
Case #PB_EventType_Down
Alarm\Minute-1
If Alarm\Minute=-1
Alarm\Minute=59
Alarm\Stunde-1
If Alarm\Stunde=-1:Alarm\Stunde=23:EndIf
SetGadgetText(StundeGadget,Str(Alarm\Stunde))
EndIf
SetGadgetText(MinuteGadget,Right("0"+Str(Alarm\Minute),2))
Case #PB_EventType_Change
Alarm\Minute=Val(GetGadgetText(MinuteGadget))
If Alarm\Minute<0:Alarm\Minute=0:EndIf
While Alarm\Minute>=60
Alarm\Minute-60
Alarm\Stunde+1
Wend
EndSelect
Case RelativGadget
Relativ=GetGadgetState(RelativGadget)
If Relativ=#PB_Checkbox_Checked
Alarm\Stunde=0
Alarm\Minute=30
EndIf
If Relativ=#PB_Checkbox_Unchecked
Alarm\Minute=Minute(Date()):Alarm\Stunde=Hour(Date())
If Alarm\Minute<30:Alarm\Minute=30:Else:Alarm\Minute=0:Alarm\Stunde+1:EndIf
If Alarm\Stunde>=24:Alarm\Stunde-24:EndIf
EndIf
SetGadgetText(StundeGadget,Str(Alarm\Stunde))
SetGadgetText(MinuteGadget,Right("0"+Str(Alarm\Minute),2))
EndSelect
EndIf
ForEver
EndIf
ProcedureReturn #False
EndProcedure
;-Main
InitGui()
UhrZeichnen()
ZeigerZeichnen()
BindEvent(#PB_Event_Timer,@ZeigerZeichnen(),1)
Alarm\Ein=#False
Alarm\Stunde=-1
Repeat
event=WaitWindowEvent()
If event=#PB_Event_Menu
Select EventMenu()
Case 1
uhr=#Arabisch1
SetMenuItemState(0,1,1)
SetMenuItemState(0,2,0)
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,0)
SetMenuItemState(0,6,0)
ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,#winh)
ZeigerZeichnen()
Case 2
uhr=#RoemischI
SetMenuItemState(0,1,0)
SetMenuItemState(0,2,1)
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,0)
SetMenuItemState(0,6,0)
ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,#winh)
ZeigerZeichnen()
Case 3
uhr=#Digital
SetMenuItemState(0,1,0)
SetMenuItemState(0,2,0)
SetMenuItemState(0,3,1)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,0)
SetMenuItemState(0,6,0)
ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,40)
ZeigerZeichnen()
Case 4
uhr=#VierundzwanzigStunden
SetMenuItemState(0,1,0)
SetMenuItemState(0,2,0)
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,1)
SetMenuItemState(0,5,0)
SetMenuItemState(0,6,0)
ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,#winh)
ZeigerZeichnen()
Case 5
uhr=#Binaer
SetMenuItemState(0,1,0)
SetMenuItemState(0,2,0)
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,1)
SetMenuItemState(0,6,0)
ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,#winh)
ZeigerZeichnen()
Case 6
uhr=#BerlinUhr
SetMenuItemState(0,1,0)
SetMenuItemState(0,2,0)
SetMenuItemState(0,3,0)
SetMenuItemState(0,4,0)
SetMenuItemState(0,5,0)
SetMenuItemState(0,6,1)
ResizeWindow(1,#PB_Ignore,#PB_Ignore,#PB_Ignore,#winh)
ZeigerZeichnen()
; Case 5
; alarm=1-alarm
; If alarm=#True
; alarm=AlarmEingeben2()
; If alarm=#True
; SetWindowTitle(1,"Alarm um "+Str(AlarmStunde)+":"+Right("0"+Str(AlarmMinute),2)+" Uhr")
; EndIf
; EndIf
; SetMenuItemState(0,5,alarm)
; If alarm=#False:SetWindowTitle(1,#WinTitle):EndIf
Case 16
sticky=1-sticky
StickyWindow(1,sticky)
SetMenuItemState(0,16,sticky)
Case 17
Break
Case 18
If Alarm\Ton=0:AlarmtonEinstellen():EndIf
If Alarm\Ton
If AlarmEingeben2()
Alarm\Ein=#True
SetWindowTitle(1,"Alarm um "+Str(Alarm\Stunde)+":"+Right("0"+Str(Alarm\Minute),2)+" Uhr")
EndIf
EndIf
Case 19
Alarm\Ein=#False
SetWindowTitle(1,#WinTitle)
Case 20
AlarmtonEinstellen()
EndSelect
EndIf
Until event=#PB_Event_CloseWindow
OpenPreferences(prefs)
WritePreferenceInteger("Xpos",WindowX(1))
WritePreferenceInteger("Ypos",WindowY(1))
WritePreferenceInteger("Uhr",uhr)
WritePreferenceInteger("Sticky",sticky)
WritePreferenceString("Alarmtonname",Alarm\Name)
ClosePreferences()
End
;-Data
DataSection
Data.s "I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"
EndDataSection