ich habe mir mal ein Programm geschrieben wo man Daten eingeben / löschen / aendern / ausgeben / nach Terminen ausgeben lassen kann.
Es ist schon etwas aelter mit alten Funktionen ( CreateGadgetList() ) was aber nicht stört.
Code: Alles auswählen
Enumeration ; Windows
#Hauptfenster
#Termineingabefenster
#Datenausgabe
#Datenloeschungauswahl
#Datenloeschungbestaetigung
#Datenaenderungauswahl
#Datenaenderungbestaetigung
#Terminausgabe
EndEnumeration
Enumeration ; Gadgets
; Hauptfenster
#Hauptfenster_lblInfo
#Hauptfenster_cmdTermineingabe
#Hauptfenster_cmdDatenausgabe
#Hauptfenster_cmdDatenloeschung
#Hauptfenster_cmdDatenaenderung
#Hauptfenster_cmdTerminausgabe
#Hauptfenster_cmdBeenden
; Termineingabefenster
#Termineingabefenster_lblInfo
#Termineingabefenster_lblDatum
#Termineingabefenster_txtDatum
#Termineingabefenster_lblTerminart
#Termineingabefenster_txtTerminart
#Termineingabefenster_lblName
#Termineingabefenster_txtName
#Termineingabefenster_cmdHinzufuegen
#Termineingabefenster_cmdBeenden
#Termineingabefenster_lblDatum2
#Termineingabefenster_lblTerminart2
#Termineingabefenster_lblName2
;Datenausgabe
#Datenausgabe_lig
;Datenloeschungauswahl
#Datenloeschungauswahl_lig
#Datenloeschungauswahl_lblDatensatz_markieren
#Datenloeschungauswahl_cmdWeiter
;Datenloeschungbestaetigung
#Datenloeschungbestaetigung_lblDatenloeschungsfenster
#Datenloeschungbestaetigung_lblDatum
#Datenloeschungbestaetigung_txtDatum
#Datenloeschungbestaetigung_lblTerminart
#Datenloeschungbestaetigung_txtTerminart
#Datenloeschungbestaetigung_lblName
#Datenloeschungbestaetigung_txtName
#Datenloeschungbestaetigung_cmdDaten_loeschen
#Datenloeschungbestaetigung_cmdAbbrechen
;Datenaenderungauswahl
#Datenaenderungauswahl_lig
#Datenaenderungauswahl_lblDatensatz_markieren
#Datenaenderungauswahl_cmdWeiter
;Datenaenderungbestaetigung
#Datenaenderungbestaetigung_lblDatenaenderungsfenster
#Datenaenderungbestaetigung_lblDatum
#Datenaenderungbestaetigung_txtDatum
#Datenaenderungbestaetigung_lblTerminart
#Datenaenderungbestaetigung_txtTerminart
#Datenaenderungbestaetigung_lblName
#Datenaenderungbestaetigung_txtName
#Datenaenderungbestaetigung_cmdDaten_abspeichern
#Datenaenderungbestaetigung_cmdAbrechen
#Datenaenderungbestaetigung_lbl10_Zeichen
#Datenaenderungbestaetigung_lbl15_Zeichen
#Datenaenderungbestaetigung_lbl25_Zeichen
;Terminausgabe
#Terminausgabe_lig
EndEnumeration
Procedure Open_Hauptfenster()
If OpenWindow(#Hauptfenster,216,0,320,250,"Terminprogramm HemSA - 10/2006",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Hauptfenster))
TextGadget (#Hauptfenster_lblInfo, 70, 20, 200, 30, "Wählen Sie bitte Ihre Anwendung aus")
ButtonGadget(#Hauptfenster_cmdTermineingabe, 30, 50, 100, 30, "Termineingabe")
ButtonGadget(#Hauptfenster_cmdDatenausgabe, 180, 50, 100, 30, "Datenausgabe")
ButtonGadget(#Hauptfenster_cmdDatenloeschung, 30, 100, 100, 30, "Datenlöschung")
ButtonGadget(#Hauptfenster_cmdDatenaenderung, 180, 100, 100, 30, "Datenänderung")
ButtonGadget(#Hauptfenster_cmdTerminausgabe, 30, 150, 100, 30, "Terminausgabe")
ButtonGadget(#Hauptfenster_cmdBeenden, 30, 200, 250, 30, "Beenden")
EndIf
EndIf
EndProcedure
Procedure Open_Termineingabefenster()
If OpenWindow(#Termineingabefenster,216,0,500,300,"Termineingabefenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Termineingabefenster))
TextGadget (#Termineingabefenster_lblInfo, 20, 20, 150, 20, "Dateneingabefenster")
TextGadget (#Termineingabefenster_lblDatum, 20, 60, 40, 20, "Datum")
StringGadget(#Termineingabefenster_txtDatum, 80, 60, 60, 20, "")
TextGadget (#Termineingabefenster_lblTerminart, 20, 100, 50, 20, "Terminart")
StringGadget(#Termineingabefenster_txtTerminart, 80, 100, 100, 20, "")
TextGadget (#Termineingabefenster_lblName, 20, 140, 60, 20, "Name")
StringGadget(#Termineingabefenster_txtName, 80, 140, 150, 20, "")
ButtonGadget(#Termineingabefenster_cmdHinzufuegen, 60, 200, 100, 30, "Daten hinzufügen")
ButtonGadget(#Termineingabefenster_cmdBeenden, 200, 200, 100, 30, "Beenden")
TextGadget (#Termineingabefenster_lblDatum2, 150, 60, 380, 20, "Nur die ersten 10 Zeichen werden übernommen")
TextGadget (#Termineingabefenster_lblTerminart2, 190, 100, 380, 20, "Nur die ersten 15 Zeichen werden übernommen")
TextGadget (#Termineingabefenster_lblName2, 240, 140, 380, 20, "Nur die ersten 25 Zeichen werden übernommen")
EndIf
EndIf
EndProcedure
Procedure lig_Fuellen(lig.l) ;lig=#Datenausgabe_lig??
If ReadFile(1,"termin.dat") ;Prozedur für das Füllen des ListIconGadget
laengel.l= Lof(1) ;von Datenausgabe, Löschungs-und Änderungsauswahl,
zeilenanzahlw.w=laengel.l/52
For iw.w=0 To zeilenanzahlw.w
FileSeek(1,iw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
AddGadgetItem(lig.l, -1,datums.s+Chr(10)+terminarts.s+Chr(10)+names.s);lig=#Datenausgabe_lig??
Next iw.w
CloseFile(1)
EndIf
EndProcedure
Procedure Open_Datenausgabe()
If OpenWindow(#Datenausgabe, 100, 100, 355, 200, "Datenausgabe", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Datenausgabe))
ListIconGadget(#Datenausgabe_lig, 5, 5, 345, 190, "Datum", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Datenausgabe_lig, 1, "Terminart", 90)
AddGadgetColumn(#Datenausgabe_lig, 2, "Name", 150)
EndIf
lig_Fuellen(#Datenausgabe_lig)
EndIf
EndProcedure
Procedure Open_Datenloeschungauswahl()
If OpenWindow(#Datenloeschungauswahl, 100, 100, 355, 275, "Datenlöschung", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Datenloeschungauswahl))
ListIconGadget(#Datenloeschungauswahl_lig, 5, 35, 345, 200, "Datum", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Datenloeschungauswahl_lig, 1, "Terminart", 90)
AddGadgetColumn(#Datenloeschungauswahl_lig, 2, "Name", 150)
TextGadget(#Datenloeschungauswahl_lblDatensatz_markieren, 5, 10, 250, 20, "Bitte den Datensatz markieren")
ButtonGadget(#Datenloeschungauswahl_cmdWeiter, 5, 245, 70, 20, "Weiter")
EndIf
lig_Fuellen(#Datenloeschungauswahl_lig)
EndIf
EndProcedure
Procedure Open_Datenloeschungbestaetigung(wertw.w)
If OpenWindow(#Datenloeschungbestaetigung,216,0,380,250,"Datenlöschungsfenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Datenloeschungbestaetigung))
TextGadget(#Datenloeschungbestaetigung_lblDatenloeschungsfenster, 20, 20, 150, 20, "Datenlöschungsfenster")
TextGadget(#Datenloeschungbestaetigung_lblDatum, 20, 60, 40, 20, "Datum")
StringGadget(#Datenloeschungbestaetigung_txtDatum, 80, 60, 60, 20, "")
TextGadget(#Datenloeschungbestaetigung_lblTerminart, 20, 100, 50, 20, "Terminart")
StringGadget(#Datenloeschungbestaetigung_txtTerminart, 80, 100, 100, 20, "")
TextGadget(#Datenloeschungbestaetigung_lblName, 20, 140, 60, 20, "Name")
StringGadget(#Datenloeschungbestaetigung_txtName, 80, 140, 150, 20, "")
ButtonGadget(#Datenloeschungbestaetigung_cmdDaten_loeschen, 20, 180, 230, 30, "Daten löschen ( sind sie sich wirklich sicher?)")
ButtonGadget(#Datenloeschungbestaetigung_cmdAbbrechen, 270, 180, 100, 30, "Abbrechen")
EndIf
If ReadFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
SetGadgetText(#Datenloeschungbestaetigung_txtDatum, datums.s)
SetGadgetText(#Datenloeschungbestaetigung_txtTerminart, terminarts.s)
SetGadgetText(#Datenloeschungbestaetigung_txtName, names.s)
CloseFile(1)
EndIf
EndIf
EndProcedure
Procedure Open_Datenaenderungauswahl()
If OpenWindow(#Datenaenderungauswahl, 100, 100, 355, 275, "Datenänderung", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Datenaenderungauswahl))
ListIconGadget(#Datenaenderungauswahl_lig, 5, 35, 345, 200, "Datum", 80,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Datenaenderungauswahl_lig, 1, "Terminart", 90)
AddGadgetColumn(#Datenaenderungauswahl_lig, 2, "Name", 150)
TextGadget(#Datenaenderungauswahl_lblDatensatz_markieren, 5, 10, 250, 20, "Bitte den Datensatz markieren")
ButtonGadget(#Datenaenderungauswahl_cmdWeiter, 5, 245, 70, 20, "Weiter")
EndIf
lig_Fuellen(#Datenaenderungauswahl_lig)
EndIf
EndProcedure
Procedure Open_Datenaenderungbestaetigung(wertw.w)
If OpenWindow(#Datenaenderungbestaetigung,216,0,500,300,"Datenänderungsfenster",#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar| #PB_Window_ScreenCentered )
If CreateGadgetList(WindowID(#Datenaenderungbestaetigung))
TextGadget(#Datenaenderungbestaetigung_lblDatenaenderungsfenster, 20, 20, 150, 20, "Datenänderungsfenster")
TextGadget(#Datenaenderungbestaetigung_lblDatum, 20, 60, 40, 20, "Datum")
StringGadget(#Datenaenderungbestaetigung_txtDatum, 80, 60, 60, 20, "")
TextGadget(#Datenaenderungbestaetigung_lblTerminart, 20, 100, 50, 20, "Terminart")
StringGadget(#Datenaenderungbestaetigung_txtTerminart, 80, 100, 100, 20, "")
TextGadget(#Datenaenderungbestaetigung_lblName, 20, 140, 60, 20, "Name")
StringGadget(#Datenaenderungbestaetigung_txtName, 80, 140, 150, 20, "")
ButtonGadget(#Datenaenderungbestaetigung_cmdDaten_abspeichern, 20, 200, 160, 30, "Geänderte Daten abspeichern")
ButtonGadget(#Datenaenderungbestaetigung_cmdAbrechen, 200, 200, 100, 30, "Abrechen")
TextGadget(#Datenaenderungbestaetigung_lbl10_Zeichen, 150, 60, 380, 20, "Nur die ersten 10 Zeichen werden übernommen")
TextGadget(#Datenaenderungbestaetigung_lbl15_Zeichen, 190, 100, 380, 20, "Nur die ersten 15 Zeichen werden übernommen")
TextGadget(#Datenaenderungbestaetigung_lbl25_Zeichen, 240, 140, 380, 20, "Nur die ersten 25 Zeichen werden übernommen")
EndIf
If ReadFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
SetGadgetText(#Datenaenderungbestaetigung_txtDatum, datums.s)
SetGadgetText(#Datenaenderungbestaetigung_txtTerminart, terminarts.s)
SetGadgetText(#Datenaenderungbestaetigung_txtName, names.s)
CloseFile(1)
EndIf
EndIf
EndProcedure
Procedure Terminausgabe_lig_Fuellen(lig.l) ;lig=#Terminausgabe_lig??
If ReadFile(1,"termin.dat")
laengel.l= Lof(1)
zeilenanzahlw.w=laengel.l/52
tags.s=FormatDate("%dd",Date())
monats.s=FormatDate("%mm",Date())
jahrs.s=FormatDate("%yyyy",Date())
tagl.l= Val(tags.s)
For iw.w=0 To zeilenanzahlw.w
FileSeek(1,iw.w*52)
wert2s.s=ReadString(1)
datums.s=Left(wert2s.s,10)
terminarts.s=Mid(wert2s.s,11, 15)
names.s=Mid(wert2s.s,26, 25)
tagdateis.s=Left(datums.s,2)
monatdateis.s=Mid(datums.s,4,2)
tagdateil.l= Val(tagdateis.s)
If monatdateis.s=monats.s
If tagdateil.l+1=tagl.l Or tagdateil.l=tagl.l Or tagdateil.l-1=tagl.l Or tagdateil.l-2=tagl.l
AddGadgetItem(lig.l, -1,datums.s+Chr(10)+terminarts.s+Chr(10)+names.s)
EndIf
EndIf
Next iw.w
CloseFile(1)
EndIf
EndProcedure
Procedure Open_Terminausgabe()
datumheutes.s=FormatDate("%dd.%mm.%yyyy", Date())
If OpenWindow(#Terminausgabe, 100, 100, 550, 200, "Termine - für gestern, heute ("+datumheutes.s+"), morgen und übermorgen", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget |#PB_Window_TitleBar| #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Terminausgabe))
ListIconGadget(#Terminausgabe_lig, 5, 5, 540, 190, "Datum", 70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#Terminausgabe_lig, 1, "Terminart", 140)
AddGadgetColumn(#Terminausgabe_lig, 2, "Name", 320)
EndIf
Terminausgabe_lig_Fuellen(#Terminausgabe_lig)
EndIf
EndProcedure
Procedure MainLoop()
Protected Quit.l
Protected EventID.l
Protected EventGadget.l
Protected EventWindow.l
Open_Hauptfenster()
Repeat
EventID = WaitWindowEvent()
EventGadget = EventGadget()
EventWindow = EventWindow()
Select EventID
Case #PB_Event_CloseWindow
Select EventWindow
Case #Hauptfenster : Quit = 1
Case #Termineingabefenster : CloseWindow(#Termineingabefenster):HideWindow(#Hauptfenster, 0)
Case #Datenausgabe : CloseWindow(#Datenausgabe):HideWindow(#Hauptfenster, 0)
Case #Datenloeschungauswahl : CloseWindow(#Datenloeschungauswahl):HideWindow(#Hauptfenster, 0)
Case #Datenloeschungbestaetigung : CloseWindow(#Datenloeschungbestaetigung):HideWindow(#Hauptfenster, 0)
Case #Datenaenderungauswahl : CloseWindow(#Datenaenderungauswahl):HideWindow(#Hauptfenster, 0)
Case #Datenaenderungbestaetigung : CloseWindow(#Datenaenderungbestaetigung):HideWindow(#Hauptfenster, 0)
Case #Terminausgabe : CloseWindow(#Terminausgabe):HideWindow(#Hauptfenster, 0)
EndSelect
Case #PB_Event_Gadget
Select EventWindow
Case #Hauptfenster
Select EventGadget
Case #Hauptfenster_cmdTermineingabe : Open_Termineingabefenster():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdDatenausgabe : Open_Datenausgabe():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdDatenloeschung : Open_Datenloeschungauswahl():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdDatenaenderung : Open_Datenaenderungauswahl():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdTerminausgabe : Open_Terminausgabe():HideWindow(#Hauptfenster, 1)
Case #Hauptfenster_cmdBeenden : Quit = 1
EndSelect
Case #Termineingabefenster
Select EventGadget
Case #Termineingabefenster_cmdHinzufuegen
text1s.s = GetGadgetText(#Termineingabefenster_txtDatum)
ergebnis1s.s = LSet(text1s.s, 10)
text2s.s = GetGadgetText(#Termineingabefenster_txtTerminart)
ergebnis2s.s = LSet(text2s.s, 15)
text3s.s = GetGadgetText(#Termineingabefenster_txtName)
ergebnis3s.s = LSet(text3s.s, 25)
textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s
If OpenFile(1,"termin.dat")
laengel.l= Lof(1)
FileSeek(1,laengel.l)
WriteStringN(1,textgesamts.s)
CloseFile(1)
EndIf
SetGadgetText(#Termineingabefenster_txtDatum, "")
SetGadgetText(#Termineingabefenster_txtTerminart, "")
SetGadgetText(#Termineingabefenster_txtName, "")
Case #Termineingabefenster_cmdBeenden
CloseWindow(#Termineingabefenster)
HideWindow(#Hauptfenster, 0)
EndSelect
Case #Datenloeschungauswahl
Select EventGadget
Case #Datenloeschungauswahl_cmdWeiter
wertw.w = GetGadgetState(#Datenloeschungauswahl_lig)
ergebniss.s = Str(wertw.w)
CloseWindow(#Datenloeschungauswahl)
Open_Datenloeschungbestaetigung(wertw.w)
EndSelect
Case #Datenloeschungbestaetigung
Select EventGadget
Case #Datenloeschungbestaetigung_cmdDaten_loeschen
loeschs.s = LSet("-", 50,"-")
If OpenFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
WriteStringN(1,loeschs.s)
CloseFile(1)
EndIf
If OpenFile(2,"terminkopie.dat")
EndIf
If ReadFile(1,"termin.dat")
laengefile1l.l= Lof(1)
zeilenanzahlfile1w.w=laengefile1l.l/52
For iw.w=0 To zeilenanzahlfile1w.w-1 ;wegen Löschzeile = 1 Zeile weniger
FileSeek(1,iw.w*52)
textgesamtfile1s.s=ReadString(1)
If textgesamtfile1s.s<>loeschs.s
laengefile2l.l= Lof(2)
FileSeek(1,laengefile2l.l)
WriteStringN(2,textgesamtfile1s.s)
EndIf
Next iw.w
CloseFile(1)
CloseFile(2)
EndIf
DeleteFile("termin.dat")
RenameFile("terminkopie.dat", "termin.dat")
DeleteFile("terminkopie.dat")
CloseWindow(#Datenloeschungbestaetigung)
HideWindow(#Hauptfenster, 0)
Case #Datenloeschungbestaetigung_cmdAbbrechen
CloseWindow(#Datenloeschungbestaetigung)
HideWindow(#Hauptfenster, 0)
EndSelect
Case #Datenaenderungauswahl
Select EventGadget
Case #Datenaenderungauswahl_cmdWeiter
wertw.w = GetGadgetState(#Datenaenderungauswahl_lig)
ergebniss.s = Str(wertw.w)
CloseWindow(#Datenaenderungauswahl)
Open_Datenaenderungbestaetigung(wertw.w)
EndSelect
Case #Datenaenderungbestaetigung
Select EventGadget
Case #Datenaenderungbestaetigung_cmdDaten_abspeichern
text1s.s = GetGadgetText(#Datenaenderungbestaetigung_txtDatum)
ergebnis1s.s = LSet(text1s.s, 10)
text2s.s = GetGadgetText(#Datenaenderungbestaetigung_txtTerminart)
ergebnis2s.s = LSet(text2s.s, 15)
text3s.s = GetGadgetText(#Datenaenderungbestaetigung_txtName)
ergebnis3s.s = LSet(text3s.s, 25)
textgesamts.s = ergebnis1s.s+ergebnis2s.s+ergebnis3s.s
If OpenFile(1,"termin.dat")
FileSeek(1,wertw.w*52)
WriteStringN(1,textgesamts.s)
CloseFile(1)
EndIf
CloseWindow(#Datenaenderungbestaetigung)
HideWindow(#Hauptfenster, 0)
Case #Datenaenderungbestaetigung_cmdAbrechen
CloseWindow(#Datenaenderungbestaetigung)
HideWindow(#Hauptfenster, 0)
EndSelect
EndSelect
EndSelect
Until Quit=1
EndProcedure
MainLoop()
End