addresbuch klapt nit so richtig

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

cyby

Betreff: addresbuch klapt nit so richtig

BeitragDo, Mai 27, 2004 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,

ich habe jetzte mal mein erstes Programm in B+ geschrieben, leider geht es nicht so richtig und zwar, wenn man auf Datei->Neue Addresse klickt sollte man in alle Felder schreiben können , doch sie sind dann immer noch gespeert !
Code: [AUSKLAPPEN]
window_fenster = CreateWindow("Addresbuch",100,100,200,300,0)
SetStatusText window_fenster,"Dies ist ein einfaches Addresbuch!"

;<<<<<<<<<<<< variablen
Global new_addresse = 0 ;0 = muss erster eine neue Addresse Wählen ; 1 = es muss keine neue Addresse gewählt werden

Global vorname$ = ""
Global nachname$ = ""
Global ort$ = ""
Global platz$ = ""
Global strase$ = ""
Global telefonnummer$ = ""
Global handynummer$ = ""
Global e_mail$ = ""
Global homepage$ = ""
Global icq$ = ""

;<<<<<<<<<<<< die Menüpunkte erzeugen
menu10 = CreateMenu("Datei",10,WindowMenu(window_fenster))
menu11 = CreateMenu("Neue Addresse",11,menu10)
menu12 = CreateMenu("Addresse Laden",12,menu10)
menu13 = CreateMenu("Addreese Speichern",13,menu10)
menu14 = CreateMenu("Ende",14,menu10)

;<<<<<<<<<<<<<<<<<<<<<<<<<<< gadget und so zeichnen
; * VORNAME
CreateLabel("Vorname : ",5,5,80,20,window_fenster)
vorname = CreateTextField(90,5,80,20,window_fenster)
; * NACHNAME
CreateLabel("Nachname : ",5,25,80,20,window_fenster)
nachname = CreateTextField(90,25,80,20,window_fenster)
; * ORT
CreateLabel("Ort : ",5,45,80,20,window_fenster)
ort = CreateTextField(90,45,80,20,window_fenster)
; * PLATZ
CreateLabel("Platz : ",5,65,80,20,window_fenster)
platz = CreateTextField(90,65,80,20,window_fenster)
; * STRAßE
CreateLabel("Straße : ",5,85,80,20,window_fenster)
strase = CreateTextField(90,85,80,20,window_fenster)
; * TELEFONNUMMER
CreateLabel("Telefonnummer : ",5,105,80,20,window_fenster)
telefonnummer = CreateTextField(90,105,80,20,window_fenster)
; * HANDYNUMMER
CreateLabel("Handynummer : ",5,125,80,20,window_fenster)
handynummer = CreateTextField(90,125,80,20,window_fenster)
; * E-MAIL
CreateLabel("E-Mail : ",5,145,80,20,window_fenster)
e_mail = CreateTextField(90,145,80,20,window_fenster)
; * HOMEPAGE
CreateLabel("Homepage : ",5,165,80,20,window_fenster)
homepage = CreateTextField(90,165,80,20,window_fenster)
; * ICQ
CreateLabel("ICQ : ",5,185,80,20,window_fenster)
icq = CreateTextField(90,185,80,20,window_fenster)

;<<<<<<<<<<<<< wenn noch nicht "Neue Addresse" gewählt worden ist
If new_addresse = 0 Then
DisableMenu menu13 ;deaktivieren
UncheckMenu menu11 ;keinen hacken setzten

;<<<<<<<<<<<<<<< alle Gadget deaktivieren
DisableGadget vorname
DisableGadget nachname
DisableGadget ort
DisableGadget platz
DisableGadget strase
DisableGadget telefonnummer
DisableGadget handynummer
DisableGadget e_mail
DisableGadget homepage
DisableGadget icq
EndIf


UpdateWindowMenu window_fenster ;aktuallisiert die Menüpunkte vor der hauptschleife

;################################################## hauptschleife für das Fenster
Repeat

wait_event = WaitEvent()
event_wahl = EventData()

Select wait_event ;wartet drauf ob etwas passiert

  Case $1001 ;wenn ein Menüpunkte ausgewählt worden ist
    Select event_wahl ;prüft welcher Menüpunkt gewählt worden ist
      Case 11 ; NEUE ADDRESSE
        new_addresse = 1
     Case 12 ; ADDRESSE LADEN
     Case 13 ; ADDRESSE SPEICHERN
      Case 14 ; ENDE
        End
     End Select
 
  Case $803 ;wenn das kreuz oben rechs gedrückt wird zum fenster schließen
  End

End Select


;<<<<<<<<<<<<< wenn noch nicht "Neue Addresse" gewählt worden ist
If new_addresse = 0 Then
DisableMenu menu13 ;deaktivieren
UncheckMenu menu11 ;keinen hacken setzten

Else ;<<<<<<<<< wenn "Neue Addresse" gewählt worden ist
EnableMenu menu13 ;aktievieren
CheckMenu menu11 ;hacken setzten
;<<<<<<<<<<<<<< aktivieren der gadgets für die Addresseingabe
ActivateGadget vorname
ActivateGadget nachname
ActivateGadget ort
ActivateGadget platz
ActivateGadget strase
ActivateGadget telefonnummer
ActivateGadget handynummer
ActivateGadget e_mail
ActivateGadget homepage
ActivateGadget icq

EndIf


UpdateWindowMenu window_fenster ;aktuallisiert immer die Menüpunkte

Forever

Danke für Hilfe Very Happy

MfG
cyby Very Happy
 

Dreamora

BeitragDo, Mai 27, 2004 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab zwar blitz+ net aber ma logisch überlegt:

du machst oben disablegadget um es zu deaktivieren

gemäss onlinehilfe gibts activate und enable
wenn man liest, steht da sogar das enable die gadgets wieder reaktiviert so dass sie wieder events erzeugen etc

-> enablegadget
 

cyby

BeitragDo, Mai 27, 2004 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ah THX,
ich habe es jetzte noch fertig programmiert, sind zwar massig Fehler drinne, war aber nur mal um das ganze kenne zu lernen Laughing
Code: [AUSKLAPPEN]
window_fenster = CreateWindow("Addresbuch",100,100,200,300,0)
SetStatusText window_fenster,"Dies ist ein einfaches Addresbuch!"

;<<<<<<<<<<<< variablen
Global new_addresse = 0 ;0 = muss erster eine neue Addresse Wählen ; 1 = es muss keine neue Addresse gewählt werden

Global vorname$ = ""
Global nachname$ = ""
Global ort$ = ""
Global platz$ = ""
Global strase$ = ""
Global telefonnummer$ = ""
Global handynummer$ = ""
Global e_mail$ = ""
Global homepage$ = ""
Global icq$ = ""

;<<<<<<<<<<<< die Menüpunkte erzeugen
menu10 = CreateMenu("Datei",10,WindowMenu(window_fenster))
menu11 = CreateMenu("Neue Addresse",11,menu10)
menu12 = CreateMenu("Addresse Laden",12,menu10)
menu13 = CreateMenu("Addreese Speichern",13,menu10)
menu14 = CreateMenu("Ende",14,menu10)

;<<<<<<<<<<<<<<<<<<<<<<<<<<< gadget und so zeichnen
; * VORNAME
CreateLabel("Vorname : ",5,5,80,20,window_fenster)
Global vorname2 = CreateTextField(90,5,80,20,window_fenster)
; * NACHNAME
CreateLabel("Nachname : ",5,25,80,20,window_fenster)
Global nachname2 = CreateTextField(90,25,80,20,window_fenster)
; * ORT
CreateLabel("Ort : ",5,45,80,20,window_fenster)
Global ort2 = CreateTextField(90,45,80,20,window_fenster)
; * PLATZ
CreateLabel("Platz : ",5,65,80,20,window_fenster)
Global platz2 = CreateTextField(90,65,80,20,window_fenster)
; * STRAßE
CreateLabel("Straße : ",5,85,80,20,window_fenster)
Global strase2 = CreateTextField(90,85,80,20,window_fenster)
; * TELEFONNUMMER
CreateLabel("Telefonnummer : ",5,105,80,20,window_fenster)
Global telefonnummer2 = CreateTextField(90,105,80,20,window_fenster)
; * HANDYNUMMER
CreateLabel("Handynummer : ",5,125,80,20,window_fenster)
Global handynummer2 = CreateTextField(90,125,80,20,window_fenster)
; * E-MAIL
CreateLabel("E-Mail : ",5,145,80,20,window_fenster)
Global e_mail2 = CreateTextField(90,145,80,20,window_fenster)
; * HOMEPAGE
CreateLabel("Homepage : ",5,165,80,20,window_fenster)
Global homepage2 = CreateTextField(90,165,80,20,window_fenster)
; * ICQ
CreateLabel("ICQ : ",5,185,80,20,window_fenster)
Global icq2 = CreateTextField(90,185,80,20,window_fenster)

;<<<<<<<<<<<<< wenn noch nicht "Neue Addresse" gewählt worden ist
If new_addresse = 0 Then
DisableMenu menu13 ;deaktivieren
UncheckMenu menu11 ;keinen hacken setzten

;<<<<<<<<<<<<<<< alle Gadget deaktivieren
DisableGadget vorname2
DisableGadget nachname2
DisableGadget ort2
DisableGadget platz2
DisableGadget strase2
DisableGadget telefonnummer2
DisableGadget handynummer2
DisableGadget e_mail2
DisableGadget homepage2
DisableGadget icq2
EndIf


UpdateWindowMenu window_fenster ;aktuallisiert die Menüpunkte vor der hauptschleife

;################################################## hauptschleife für das Fenster
Repeat

wait_event = WaitEvent()
event_wahl = EventData()

Select wait_event ;wartet drauf ob etwas passiert

  Case $1001 ;wenn ein Menüpunkte ausgewählt worden ist
    Select event_wahl ;prüft welcher Menüpunkt gewählt worden ist
      Case 11 ; NEUE ADDRESSE
        new_addresse = 1
     Case 12 ; ADDRESSE LADEN
      EnableGadget vorname2
      EnableGadget nachname2
      EnableGadget ort2
      EnableGadget platz2
      EnableGadget strase2
      EnableGadget telefonnummer2
      EnableGadget handynummer2
      EnableGadget e_mail2
      EnableGadget homepage2
      EnableGadget icq2
       load( RequestFile("Wählen Sie eine Datei aus.","addi",0 ) )
       new_addresse = 1
     Case 13 ; ADDRESSE SPEICHERN
       save( RequestFile("Wählen Sie eine Datei aus.","addi",1 ) )
      Case 14 ; ENDE
        End
     End Select
 
  Case $803 ;wenn das kreuz oben rechs gedrückt wird zum fenster schließen
  End

End Select


;<<<<<<<<<<<<< wenn noch nicht "Neue Addresse" gewählt worden ist
If new_addresse = 0 Then
DisableMenu menu13 ;deaktivieren
UncheckMenu menu11 ;keinen hacken setzten

Else ;<<<<<<<<< wenn "Neue Addresse" gewählt worden ist
EnableMenu menu13 ;aktievieren
CheckMenu menu11 ;hacken setzten
;<<<<<<<<<<<<<< aktivieren der gadgets für die Addresseingabe
EnableGadget vorname2
EnableGadget nachname2
EnableGadget ort2
EnableGadget platz2
EnableGadget strase2
EnableGadget telefonnummer2
EnableGadget handynummer2
EnableGadget e_mail2
EnableGadget homepage2
EnableGadget icq2

EndIf


UpdateWindowMenu window_fenster ;aktuallisiert immer die Menüpunkte

Forever

;###################################### SAVE save() ########################
Function save(name$)
If Not name$ = ""
vorname$ = TextFieldText(vorname2)
nachname$ = TextFieldText(nachname2)
ort$ = TextFieldText(ort2)
platz$ = TextFieldText(platz2)
strase$ = TextFieldText(strase2)
telefonnummer$ = TextFieldText(telefonnummer2)
handynummer$ = TextFieldText(handynummer2)
e_mail$ = TextFieldText(e_mail2)
homepage$ = TextFieldText(homepage2)
icq$ = TextFieldText(icq2)
datei = WriteFile(name$)
WriteLine datei,vorname;VORNAME
WriteLine datei,nachname;NACHNAME
WriteLine datei,ort;ORT
WriteLine datei,platz;PLATZ
WriteLine datei,strase;STRAßE
WriteLine datei,telefonnummer;TELEFONNUMMER
WriteLine datei,handynummer;HANDYNUMMER
WriteLine datei,e_mail;E-MAIL
WriteLine datei,homepage;HOMEPAGE
WriteLine datei,icq;ICQ
CloseFile(datei)
EndIf
End Function

;####################################### LOAD load() #######################
Function load(name$)
If Not name$ = ""
datei = ReadFile(name$)
vorname$ = ReadLine(datei);VORNAME
nachname$ = ReadLine(datei);NACHNAME
ort$ = ReadLine(datei);ORT
platz$ = ReadLine(datei);PLATZ
strase$ = ReadLine(datei);STRAßE
telefonnummer$ = ReadLine(datei);TELEFONNUMMER
handynummer$ = ReadLine(datei);HANDYNUMMER
e_mail$ = ReadLine(datei);E-MAIL
homepage$ = ReadLine(datei);HOMEPAGE
icq$ = ReadLine(datei);ICQ
CloseFile(datei)
SetGadgetText vorname2,vorname
SetGadgetText nachname2,nachname
SetGadgetText ort2,ort
SetGadgetText platz2,platz
SetGadgetText strase2,strase
SetGadgetText telefonnummer2,telefonnummer
SetGadgetText handynummer2,handynummer
SetGadgetText e_mail2,e_mail
SetGadgetText homepage2,homepage
SetGadgetText icq2,icq
EndIf
End Function


MfG
cyby Very Happy

mir ist gerade aufgefallen das ich es in den falschen Bereicht geschrieben habe Embarassed , könnte das bitte ein Mod/Admin verschieben !

General Alex

BeitragDo, Mai 27, 2004 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Macht mich bitte zum Moderator! Wink

Nein, schon gut. Du könntest deine Code ja auch einrücken (mit [Tab]), dann wird es auch übersichtlicher.
Beispiel:
Code: [AUSKLAPPEN]
If Not AlexMod Then
  Print "Ist mir doch egal!"
Else
  Print "Danke vielmals!"
End If

Markus2

BeitragDo, Mai 27, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
@cyby
Haste da auch ne Suchfunktion drin ?
Und das Konzept könntest du mal überdenken Idea
Das ganze in Types würde vieles erleichtern z.B.
erstmal das laden und speichern ... falls du mir dem
verschieben das Code Archiv meinst Confused
 

cyby

BeitragDo, Mai 27, 2004 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
ich kenne mich in Typs noch nicht so aus , aber Variablen gehen für mich schneller Very Happy
 

Dreamora

BeitragDo, Mai 27, 2004 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Types hat man schnell gelernt und sind ein mächtiges werkzeug ( einer der hauptgründe warum ich von DB hier rüber gewechselt hab ) wenn man effizient algorithmen nutzen will.

Was du auf jeden Fall noch lernen musst ist Codegestaltung ... is gelinde gesagt der reinste horror das zu lesen und der code ist noch relativ kurz ...
 

cyby

BeitragDo, Mai 27, 2004 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
also typs kann ich schon, habe sie aber bis jetzte nur in meinem RPG verwendet und habe daher noch nicht soviel erfahrung und vom dem gestalten her habe ich auch nicht drauf geachtet, war eigentlich nur da um mich mal ein bischen in B+ einzuprogrammieren um jetzte einen MapEditor zu machen Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group