Aktuelle Zeit: 26.05.2013 08:01

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [Mini-Tut] Simple Nutzerverwaltung
BeitragVerfasst: 19.04.2009 03:03 
Offline

Registriert: 10.09.2004 20:51
Wohnort: Ansbach
Also, da es in einem anderen Thread gefragt wurde und ich sowas schonmal vor Ewigkeiten geschrieben hab, hab ich das ganze mal auf den neusten Stand gebracht.

Das ganze ist so einfach gehalten wie möglich, morgen schreib ich noch ein paar Kommentare rein, das ganze hier läuft ohne Array, es wird ein ListIconGadget zum "verwalten" genutzt, morgen schreib ich das ganze dann noch für ein Array um:

Code:
Enumeration ;Gadgets
  #List
  #String_Name
  #String_Alter
  #String_Wohnort
  #String_Hobby
  #Hinzu
 
  #Save
  #Load
 
  #Weg
EndEnumeration

Procedure Save() ; Prozedur zum speichern
  If CreateFile(0,"save.csv") ; Speicherdatei erstellen
    For id = 0 To CountGadgetItems(#List)-1 ; Jede Zeile einmal durchgehen
      WriteStringN(0,GetGadgetItemText(#List,id,0) +";"+GetGadgetItemText(#List,id,1) +";"+GetGadgetItemText(#List,id,2) +";"+GetGadgetItemText(#List,id,3)) ;Die Verschiedenen Reihen durch ; getrennt in die Datei schreiben
    Next
    CloseFile(0) ; Datei schließen
  EndIf
EndProcedure

Procedure Load() ; Prozedur zum laden
  ClearGadgetItems(#List) ; Die Liste leeren
  If ReadFile(0,"save.csv") ; Die Datei einlesen
    While Eof(0) = 0 ; Solange noch Zeilen  zum lesen da sind wiederholen
      AddGadgetItem(#List,-1,ReplaceString(ReadString(0),";",Chr(10))) ; Zeile Einlesen und alle ; durch Chr(10) ersetzen und zum Gadget hinzufügen
    Wend
    CloseFile(0) ; Datei schließen
  EndIf
EndProcedure


If OpenWindow(0,0,0,440,300,"Nutzerverwaltung",#PB_Window_ScreenCentered |#PB_Window_SystemMenu |#PB_Window_MinimizeGadget) ; Fenster öffnen
  ListIconGadget(#List,10,10,320,250,"Name",110,#PB_ListIcon_GridLines |#PB_ListIcon_AlwaysShowSelection |#PB_ListIcon_FullRowSelect) ; ListIconGadget erstellen
    AddGadgetColumn(0,1,"Alter",40) ; Spalten erstellen...
    AddGadgetColumn(0,2,"Wohnort",70)
    AddGadgetColumn(0,3,"Hobby",96)
   
   
  StringGadget(#String_Name,10,270,110,20,"") ; Strings und Button zum Eingeben erstellen
  StringGadget(#String_Alter,130,270,30,20,"")
  StringGadget(#String_Wohnort,170,270,60,20,"")
  StringGadget(#String_Hobby,240,270,90,20,"")
  ButtonGadget(#Hinzu,340,270,90,20,"Hinzufügen")
 
  ButtonGadget(#Save,340,10,90,20,"Speichern") ; Buttons zum Laden/Speichern und Entfernen eine Zeile
  ButtonGadget(#Load,340,40,90,20,"Laden")
 
  ButtonGadget(#Weg,340,240,90,20,"Entfernen")
 
  Load() ; Das oben definierte Laden ausführen
 
  Repeat ; Endlos ausführen
    event = WaitWindowEvent() ; Auf eine Aktion im Fenster warten
    Select event ; Aktion auswerten
      Case #PB_Event_Gadget ; Es wurde ein Gadget betätigt
        eg = EventGadget() ; Welches Gadget?
        Select eg
          Case #Hinzu ; Der Button zum Hinzufügen
            Name.s  = GetGadgetText(#String_Name)    : SetGadgetText(#String_Name,"") ; Die Einzelnen Strings auslesen...
            Alter.s = GetGadgetText(#String_Alter)   : SetGadgetText(#String_Alter,"")
            Wohn.s  = GetGadgetText(#String_Wohnort) : SetGadgetText(#String_Wohnort,"")
            Hobby.s = GetGadgetText(#String_Hobby)   : SetGadgetText(#String_Hobby,"")
           
            AddGadgetItem(#List,-1,Name+Chr(10)+Alter+Chr(10)+Wohn+Chr(10)+Hobby) ; Und durch Chr(10) getrennt eintragen
          Case #Weg ; Der Button zum entfernen
            RemoveGadgetItem(#List,GetGadgetState(#List)) ; Das im #List-Gadget ausgewählte Element entfernen
          Case #Save  ; Button zum Speichern
            Save() ; Speichern...
          Case #Load ; Button zum laden
            Load() ; Laden...
        EndSelect
      Case #PB_Event_CloseWindow ; Es wurde das Schließen-X am Fenster gedrückt
        Select MessageRequester("Beenden","Soll vor Beenden gespeichert werden?", #PB_MessageRequester_YesNoCancel |#MB_ICONQUESTION) ; Frage ob Gespeichert werden soll oder nicht
          Case #PB_MessageRequester_Yes ; Ja es Soll gespeichert werden
            Save() ; Speichern...
            End ; Ende
          Case #PB_MessageRequester_No ; Nein es soll nicht gespeichert werden
            End ; Ende
        EndSelect
        ;Falls Abbrechen gedrückt wurde wird keins von beidem ausgeführt und das Programm läuft einfach weiter...
    EndSelect
  ForEver
EndIf

_________________
(\/) (°,,,°) (\/)


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2009 19:19 
Offline
Moderator

Registriert: 15.06.2008 18:22
schön :allright:

_________________
Win8 x64 | PB 5.10


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye