Ich habe gerade kein aktuelles Projekt und bastel mal was zusammen.
FF

Code: Alles auswählen
If OpenWindow(0,200,200,300,150,"test",#PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
t$="This text goes inside a multiline StringGadget."+Chr(13)+Chr(10)
For r=2 To 10 : t$+Str(r)+Chr(13)+Chr(10) : Next
StringGadget(0,10,10,200,100,t$,#ES_MULTILINE |#ES_AUTOVSCROLL|#WS_VSCROLL|#WS_HSCROLL)
ButtonGadget(1,230,10,50,20,"Save")
ButtonGadget(2,230,40,50,20,"Load")
ButtonGadget(3,230,70,50,20,"Info")
Repeat
ev=WaitWindowEvent()
If ev=#PB_Event_Gadget
Select EventGadget()
Case 1 ; Save
If CreateFile(0,"MultiLine.txt")
WriteStringN(0,GetGadgetText(0))
CloseFile(0)
EndIf
Case 2 ; Load
If ReadFile(0,"MultiLine.txt")
a$=""
Repeat
a$+ReadString(0)+Chr(13)+Chr(10)
Until Eof(0)<>0
CloseFile(0)
SetGadgetText(0,a$)
EndIf
Case 3 ; Info
lines=SendMessage_(GadgetID(0),#EM_GETLINECOUNT,0,0)
where=SendMessage_(GadgetID(0),#EM_LINEFROMCHAR,-1,0)+1
MessageRequester("Info",Str(lines)+" lines in the box."+Chr(13)+"You are on line "+Str(where)+".",0)
EndSelect
EndIf
Until ev=#PB_Event_CloseWindow
EndIf
Sir0Kuhl hat geschrieben:könnte es sein, dass bei 3.30 enumeration nicht gibt?
PureBasic Geschichte hat geschrieben:6. Oktober 2003 : Version 3.80
...
- Hinzugefügt: Enumeration/EndEnumeration zum schnellen Deklarieren einer Vielzahl aufeinanderfolgender Konstanten
...
Code: Alles auswählen
;Funktionen#####################################################
Procedure JNAbfrage(head.s,text.s,breite.l)
If OpenWindow(2,450,300,breite.l,80,#PB_Window_SystemMenu,head.s)
;Gadgets
If CreateGadgetList(WindowID())
TextGadget(11,5,5,290,20,text.s)
ButtonGadget(12,10,50,100,25,"Ja")
ButtonGadget(13,breite.l-110,50,100,25,"Nein")
EndIf
Repeat
ActivateWindow()
event.l = WaitWindowEvent()
Select event
Case #PB_Event_CloseWindow
wahl.b = 0
fertig.b = 1
CloseWindow(2)
Case #PB_Event_Gadget
Select EventGadgetID()
Case 12 ;Ja-Button
wahl.b = 1
fertig.b = 1
CloseWindow(2)
Case 13 ;Nein-Button
wahl.b = 0
fertig.b = 1
CloseWindow(2)
EndSelect
EndSelect
Until fertig.b = 1
EndIf
ProcedureReturn wahl.b
EndProcedure
;Hauptprogramm#####################################################
If OpenWindow(1,400,50,350,500,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget,"Telefonbuch")
;Gadgets
If CreateGadgetList(WindowID())
TextGadget(1,5,5,100,20,"Vorname:")
TextGadget(2,5,30,100,20,"Name:")
TextGadget(3,5,55,100,20,"Tel.:")
StringGadget(4,110,5,230,20,"")
StringGadget(5,110,30,230,20,"")
StringGadget(6,110,55,230,20,"",#PB_String_Numeric)
ListViewGadget(7,10,115,330,350)
ButtonGadget(8,10,470,100,25,"Eintragen")
ButtonGadget(9,125,470,100,25,"Löschen")
ButtonGadget(10,240,470,100,25,"Beenden")
EndIf
;Telefonbuch-Daten aus Datei einlesen
If OpenFile(1,"data.tel")
Repeat
zeile.s = ReadString()
If zeile.s <> ""
AddGadgetItem(7,-1,zeile.s)
EndIf
Until zeile.s = ""
CloseFile(1)
EndIf
;Hauptschleife####################
Repeat
event.l = WaitWindowEvent()
Select event
Case #PB_Event_CloseWindow
Exit.b = 1
Save.b = JNAbfrage("Speichern","Möchten Sie das Telefonbuch abspeichern?",235)
Case #PB_Event_Gadget
Select EventGadgetID()
Case 8 ;Eintragen-Button
If GetGadgetText(4) <> "" And GetGadgetText(5) <> "" And GetGadgetText(6) <> ""
AddGadgetItem(7,-1,GetGadgetText(4)+" "+GetGadgetText(5)+" --- Tel.: "+GetGadgetText(6))
SetGadgetText(4,"")
SetGadgetText(5,"")
SetGadgetText(6,"")
Else
MessageRequester("Fehler","Bitte alle Felder ausfüllen!",0)
EndIf
Case 9 ;Löschen-Button
gadgetstate.w = GetGadgetState(7)
If gadgetstate.w <> -1
If JNAbfrage("Eintrag löschen","Möchten Sie diesen Eintrag wirklich löschen?",235)
RemoveGadgetItem(7,gadgetstate.w)
EndIf
EndIf
Case 10 ;Beenden-Button
Exit.b = 1
Save.b = JNAbfrage("Speichern","Möchten Sie das Telefonbuch abspeichern?",235)
EndSelect
EndSelect
Until Exit.b = 1
If Save.b = 1
If CreateFile(1,"data.tel")
Repeat
eintrag.s = GetGadgetItemText(7,eintragnr.l,0)
If eintrag.s <> ""
WriteStringN(eintrag.s)
EndIf
eintragnr.l = eintragnr.l + 1
Until eintrag.s =""
CloseFile(1)
EndIf
EndIf
EndIf
End