OK Button mit Returntaste betätigen

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

Commander

Betreff: OK Button mit Returntaste betätigen

BeitragDo, Nov 01, 2007 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo

Ich schreibe zu Zeit mein erstes Programm in BB Plus, einen Vokabeltrainer.
Die Grundfunktionen hab ich alle und bin jetzt dabei die "Schönheitsfehler" zu bereinigen.

Ich hab eine Function mit der ich Vokabel hinzufügen kann.


Code: [AUSKLAPPEN]

Function Datei_anfuegen()

daten_zaehler = 0
Ausstieg = 0
I = 0
Repeat
I = I+1
If  wort_links$(I) = ""  Then  daten_zaehler = I
If I =100 Then
Notify "Pro Übung können nur 100 Vokabel eingegeben werden !"
daten_zaehler = 100
EndIf

Until daten_zaehler <> 0

I = 0
A = daten_zaehler
   
   
;Hauptfenster deaktivieren und neues erstellen
   DisableGadget window
   bearbeiten_win = CreateWindow("Vokabel einfügen",200,200,260,200,window,1)
   
   
   
   
   CreateLabel (ueber_links$,15,15,150,20,bearbeiten_win)
   bearbeiten_links=CreateTextField(10,35,230,20,bearbeiten_win)
   CreateLabel (ueber_rechts$,15,65,150,20,bearbeiten_win)
   bearbeiten_rechts=CreateTextField(10,85,230,20,bearbeiten_win)
   
   button_ok=CreateButton("OK",30,120,80,20,bearbeiten_win,1)
   button_ab=CreateButton("Fertig",130,120,80,20,bearbeiten_win,1)
   
   daten_zeiger = daten_zaehler
   
   
   Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
   ActivateGadget bearbeiten_links   
   Repeat
      
      If daten_zeiger = 100 Then Ausstieg = 1
      Select WaitEvent(100)
            
;Button abfragen      
         Case $401
            
            If EventSource()=button_ok Then
               wort_links$(daten_zeiger) = TextFieldText(bearbeiten_links)
               wort_rechts$(daten_zeiger) = TextFieldText(bearbeiten_rechts)
               daten_zeiger = daten_zeiger + 1
               Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
               
               ActivateGadget bearbeiten_links
               
            EndIf
            
            If EventSource()=button_ab Then Ausstieg = 1
            
            
      End Select
      
      
   Until Ausstieg =1
   Datei_speichern()
   Ueberschrift()
   EnableGadget window
   daten_zaehler = daten_zaehler - 10
   Textfeld()
   FreeGadget bearbeiten_win
   ActivateWindow window

End Function

Function Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
   SetGadgetText bearbeiten_links, wort_links$(daten_zeiger)
   SetGadgetText bearbeiten_rechts, wort_rechts$(daten_zeiger)
   
End Function


Ich gebe in bearbeiten_links ein Wort ein dann drückt man TAB springt zu bearbeiten_rechts wieder TAB
man springt zum OK Button drückt ENTER und übernimmt die Eingebe.
NUR

Ich gebe ein Weiteres Wort ein. Wieder TAB man springt zu bearbeiten_rechts wieder TAB man springt zum OK Button aber man kann ihn nicht wie beim ersten Mal mit der ENTER-Taste betätigen.
Erst wenn man mit TAB alle Gadget durch hat und wieder zum den OK-Button ausgewählt hat kann man diesen auch wieder mit der ENTER-Taste betätigen.

Das stört sehr wenn man flüssig Vokabel eingeben will.

Kann mir da wer helfen?

Shogo

BeitragFr, Nov 02, 2007 1:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch das mal.

Code: [AUSKLAPPEN]
button_ok=CreateButton("OK",30,120,80,20,bearbeiten_win,4)


Steht hier in denn Blitzplus Docs . (engl)

Commander

BeitragFr, Nov 02, 2007 2:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider bringt garnichts immer der selbe Effekt. Sad

Shogo

BeitragFr, Nov 02, 2007 12:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutzt du die neuste Version BB+?

Und warum erstellst du immer wieder ein neues Fenster?

Hip Teen

BeitragFr, Nov 02, 2007 15:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil mich das ganze einfach mal interessiert hat, aber die Informationen sehr spärlich waren, hab ich die Anwendung einfach mal genau rausbekommen und in diesem anschaulichen Programm umgesetzt. Vielleicht nützt es was und macht verständlich, wie es funktioniert:

Code: [AUSKLAPPEN]
window = CreateWindow ("blaa",0,0,500,500)
button = CreateButton ("waaah",0,50,100,50,window)
textfield = CreateTextField (0,0,100,20,window)

Repeat
   Select WaitEvent ()
   Case $803
      End
   Case $104
      Notify "Du hast OK gedrückt"
   End Select
Forever
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger"

Commander

BeitragSa, Nov 03, 2007 1:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Benutzt du die neuste Version BB+?

Und warum erstellst du immer wieder ein neues Fenster?


Ja ich habe die neueste BB+ Version 1.45

Die zweite Frage verstehe ich nicht ganz .
Ich hab eine Hauptroutine wo ich Menu, Button und so weiter abrfrage. Wenn ich dort auf Vokabel einfügen klicke springe ich in die Function Datei_anfuegen und arbeit dort meine Eingaben ab bis ich auf den Button "Fertig" clicke.
Wenn mit der Tabulator-Taste den OK Button auswähle

siehe:

user posted image

und dann die Enter-Taste drücke dann klappt alles.

Ich gebe wieder was ein und wähle wieder mir der Tabulator-Taste den OK-Button aus (siehe Bild)
Dann kann ich Enter so oft drücken wie ich will es passiert nichts.
Ich kann jetzt die Maus in die Hand nehmen und auf OK clicken, oder ich kann so oft auf die Tabulator-Taste drücken bis der OK-Button wieder ausgewählt ist. dann klappt es auch wieder mit der Enter-Taste

Genauer kann ich es glaub ich mal nicht mehr erklären.

@Hip Teen:
Dein Beispiel verstehe ich nicht da kommt nie die Meldung "Du hast OK gedrückt"

Shogo

BeitragSa, Nov 03, 2007 2:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Allso einen Fehler kann ich in dem Code denn du reingestellt hast nicht finden. Vieleicht Postest du mal den ganzen Code dann kann ich ihn bei mir mal testen.

Ich habs auch noch mal bei mir Ausprobiert da geht es.
Code: [AUSKLAPPEN]
Global win1 = CREATEWINDOW("Button Test",100, 100, 200, 100, Desktop(), 1)

Global Textfeld1 = CreateTextField(0, 0, 200, 20, win1)
Global Textfeld2 = CreateTextField(0, 25, 200, 20, win1)

Global button_ok = CreateButton("OK", 75, 50, 50, 20, win1, 4)

Dim variablenspeichern$(100,1)
Global zaehler = 0

; F1 druecken
HOTKEYEVENT 59, 0, $1001

ActivateGadget Textfeld1
Repeat

   Select WaitEvent()
      Case $401
         Select EventSource()
            Case button_ok
               zaehler = zaehler+1; Zaehler um 1 erhoehen
               
               If Zaehler = 100 Then Exit; Falls groesser als 100 wird Schleife Beendet
               
               ; Auslessen der Eingaben
               variablenspeichern(zaehler, 0) = TextFieldText(Textfeld1)
               variablenspeichern(zaehler, 1) = TextFieldText(Textfeld2)
               
               ; Textfeld Eingaben Loeschen
               SetGadgetText Textfeld1, ""
               SetGadgetText Textfeld2, ""
               
               ActivateGadget Textfeld1
         End Select
      Case $803
         End
      Case $1001
         ; Ausgeben der Eingaben
         Stop
         For I = 1 To zaehler
            Print "Nr. " + I + ": " + variablenspeichern(I, 0) + "; " + variablenspeichern(I, 1)
         Next
   End Select
   
Until KeyHit(1)


Durch die 4 bei createbutton muss der OK Button noch nicht mal markiert sein. Immer wenn ich Enter druecke wird ein Druecken des OK Button simuliert.

Commander

BeitragSa, Nov 03, 2007 2:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Die gesammelten Werke




Code: [AUSKLAPPEN]
;====================================================================
; Project: Vokabel Trianer
; Version: 0.1
; Author: Commander
; Email:
; Copyright:
; Description:   
;                   
;                   
;====================================================================

;Ein Fenster erstellen
Global window = CreateWindow("Vokabel Trainer V0.1",200,200,500,400,0,15)
;Variablen
AppTitle "Vokabel Trainer V0.1"
Global daten$=""
Global vokabel_links$ =""
Global vokabel_rechts$ =""
Global ueber_links$ =""
Global ueber_rechts$ =""
Global datei_name$ = "leer.csv"
Global daten_zaehler = 0
Global daten_zeiger = 0
Global vokabel_daten = 0
; Zufallszahlen nach Systemzeit ausrichten --> Bei jedem Start anders.
SeedRnd(MilliSecs())
;Menü erstellen
menu1=CreateMenu("Datei",1,WindowMenu(window))
menu2=CreateMenu("Bearbeiten",2,WindowMenu(window))
menu3=CreateMenu("Abfragen",3,WindowMenu(window))
menu4=CreateMenu("Neu",4,menu1)
menu5=CreateMenu("Öffnen",5,menu1)
;menu6=CreateMenu("Schliessen",6,menu1)
menu7=CreateMenu("Speichern",7,menu1)
menu8=CreateMenu("Speichern unter ...",8,menu1)
menu9=CreateMenu("Vokabel bearbeiten",9,menu2)
menu10=CreateMenu("?",10,WindowMenu(window))
menu11=CreateMenu("Vokabel einfügen",11,menu2)
menu12=CreateMenu("Vokabel löschen",12,menu2)
UpdateWindowMenu window

;-------------------------------------------------------------------------
;Iconleiste erstellen
toolbar=CreateToolBar("toolbar_v2.bmp",0,0,224,32,window)
SetToolBarTips toolbar,"Neu,Öffnen,Speichern,Einfügen,Bearbeiten,Löschen,Abfragen"
panel=CreatePanel(0,41,500,1,window)
SetPanelColor panel,255,255,255
;-------------------------------------------------------------------------




;Textfelder erstellen

Dim textfeld_links(10), textfeld_rechts(10),textfeld_antwort(10)
Dim wort_links$(100), wort_rechts$(100)
Dim vokabel_button(10), sprache(2), abfrage$(100), richtig$(100), antwort$(10)

For i = 1 To 10

   y = 22*i+48
   textfeld_links(i)=CreateTextField(20,y,223,20,window)
   textfeld_rechts(i)=CreateTextField(255,y,223,20,window)
   
;Auswahl Button erstellen (Radiobutton)   
   vokabel_button(i)=CreateButton("",2,(y+3),15,15,window,3)
   
Next
;Den ersten Button auswählen

SetButtonState vokabel_button(1),1

; Vor und Zurück Button erstellen

button_vor=CreateButton("Vor -->",270,300,80,20,window,1)
button_zurueck=CreateButton("<-- Zurück",150,300,80,20,window,1)


Ueberschrift()

Textfeld()




Repeat
   
;Event abfragen
   
   
;Identität des Events abfragen
   
   Select WaitEvent(100)
         
;Falls auf [X] geklickt wurde, dann wird beendet
         
      Case $803 End
;Iconleiste abfragen      
   Case $401
      If EventSource()=toolbar Then Icon_abfrage()
      If EventSource()=button_vor And daten_zaehler< 100 Then
         If wort_links$(1+daten_zaehler) <>"" Then Textfeld()
      EndIf
      
      If EventSource()=button_zurueck Then
         daten_zaehler = daten_zaehler - 20
         Textfeld()
      EndIf
      
         
      
      
;Menü abfragen
   Case $1001
      If EventData() = 5 Then
         Datei_laden()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf
      
      If EventData() = 7 Then
         Datei_speichern()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf

      If EventData() = 8 Then
         Datei_speichernunter()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf
      
      If EventData() = 9 Then
         Vokabel_bearbeiten()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf
      
      If EventData() = 11 Then
         Datei_anfuegen()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf
   
      If EventData() = 12 Then
         Vokabel_loeschen()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf
      
      If EventData() = 3 Then
         Abfragen()
         panel=CreatePanel(0,41,500,1,window)
         SetPanelColor panel,255,255,255
      EndIf
         
End Select



;Wenn [Esc] gedrückt, dann Ende
If KeyHit(1) Then End

; ...für immer
Forever



Function Vokabel ()
   
   vokabel_links$ =""
   vokabel_rechts$ =""
   Rechts = 0
   
   For I = 1 To Len(daten$)
      
      A$ = Mid$ (daten$, I ,1)
      
      If Asc (A$) = 59 Then Rechts =1
      
      If Rechts =1 Then
         vokabel_rechts$ = vokabel_rechts$ + A$
      Else
         vokabel_links$ = vokabel_links$ + A$
      EndIf
      
   Next   
   
   vokabel_rechts$ = Right$ (vokabel_rechts$, (Len (vokabel_rechts$) -1))
   
End Function

   
Function Textfeld ()
   
   If daten_zaehler > 90 Then daten_zaehler = 90
   If daten_zaehler < 0 Then daten_zaehler = 0

For i=1 To 10
   

   SetGadgetText textfeld_links(i), wort_links$(i+daten_zaehler)
   SetGadgetText textfeld_rechts(i), wort_rechts$(i+daten_zaehler)
   
   
Next

daten_zaehler = daten_zaehler + 10



End Function
   
   
Function Ueberschrift()
   vokabel_daten = ReadFile(datei_name$)
;Erste Zeile von vokabel_daten auslesen und damit Feld Überschrlift erstellen
daten$=ReadLine (vokabel_daten)
Vokabel()

ueber_links$ = vokabel_links$
ueber_rechts$ = vokabel_rechts$
CreateLabel (ueber_links$,25,48,150,20,window)
CreateLabel (ueber_rechts$,260,48,150,20,window)



End Function

Function Icon_abfrage()
   
   symbol_nr = EventData()
   If symbol_nr = -1 Then Datei_neu()
   If symbol_nr = 0 Then Datei_laden()
   If symbol_nr = 1 Then Datei_speichern()
   If symbol_nr = 2 Then Datei_anfuegen()
   If symbol_nr = 3 Then Vokabel_bearbeiten()
   If symbol_nr = 4 Then Vokabel_loeschen()
   If symbol_nr = 5 Then Abfragen()
End Function


Function Datei_laden ()
   
   datei_name$=RequestFile$ ("Dateiauswahl","csv,*",0)
   If datei_name$<>"" Then
   vokabel_daten = ReadFile(datei_name$)
   SetStatusText window,datei_name$
   daten_zaehler = 0
   
   Ueberschrift()
   For i = 1 To 100
      daten$=ReadLine (vokabel_daten)
      Vokabel()
      wort_links$(i) = vokabel_links$
      wort_rechts$(i) = vokabel_rechts$
   Next
   
   Textfeld()
   EndIf
   
End Function

Function Vokabel_bearbeiten()
   
   Ausstieg = 0
   
   DisableGadget window
   bearbeiten_win = CreateWindow("Vokabel bearbeiten",200,200,260,200,window,1)
   
   CreateLabel (ueber_links$,15,15,150,20,bearbeiten_win)
   bearbeiten_links=CreateTextField(10,35,230,20,bearbeiten_win)
   CreateLabel (ueber_rechts$,15,65,150,20,bearbeiten_win)
   bearbeiten_rechts=CreateTextField(10,85,230,20,bearbeiten_win)
   
   button_ok=CreateButton("OK",30,120,80,20,bearbeiten_win,1)
   button_ab=CreateButton("Abbrechen",130,120,80,20,bearbeiten_win,1)
   
   Auswahl_vokabel()
   
   SetGadgetText bearbeiten_links, wort_links$(daten_zeiger)
   SetGadgetText bearbeiten_rechts, wort_rechts$(daten_zeiger)
   
   Repeat
      
      Select WaitEvent(100)
            
;Button abfragen      
         Case $401
            
            If EventSource()=button_ok Then
               wort_links$(daten_zeiger) = TextFieldText(bearbeiten_links)
               wort_rechts$(daten_zeiger) = TextFieldText(bearbeiten_rechts)
               Ausstieg = 1
            EndIf
            
            If EventSource()=button_ab Then Ausstieg = 1
            
            
      End Select
      
   
Until Ausstieg =1

EnableGadget window
daten_zaehler = daten_zaehler - 10
Textfeld()
FreeGadget bearbeiten_win
End Function

Function Auswahl_vokabel()
   
   For i = 1 To 10
      
      If ButtonState(vokabel_button(i))=1 Then daten_zeiger = i + daten_zaehler -10
      
      
   Next
End Function

Function Datei_speichern()
   
   datei_name$=RequestFile$ ("Datei speichern","csv,*",1,datei_name$)
   If datei_name$ <> "" Then
   

   fileout = WriteFile(datei_name$)
   
   WriteLine fileout,ueber_links$+";"+ueber_rechts$
   
   For i = 1 To 100
      WriteLine fileout,wort_links$(i)+";"+wort_rechts$(i)
      
   Next
   
   CloseFile fileout
   
   EndIf
   
   datei_name$ = "leer.csv"
   
End Function



Function Datei_speichernunter()
   
   datei_name$=RequestFile$ ("Datei speichern unter","csv,*",1)
   
   If datei_name$ <> "" Then
   
   
   fileout = WriteFile(datei_name$)
   
   WriteLine fileout,ueber_links$+";"+ueber_rechts$
   
   For i = 1 To 100
      WriteLine fileout,wort_links$(i)+";"+wort_rechts$(i)
      
   Next
   
   CloseFile fileout
   EndIf
      
   
End Function



Function Datei_neu()
   datei_name$ = "unit.csv"
   Ausstieg = 0
   ueber_links$ = "Sprache 1"
   ueber_rechts$ = "Sprache 2"
   
;Hauptfenster deaktivieren und neues erstellen
   DisableGadget window
   bearbeiten_win = CreateWindow("Neue Vokabeldatei erstellen",200,200,260,200,window,1)
   
   If ueber_links$ = "Sprache 1" Or ueber_rechts$ = "Sprache 2" Then
      Ausstieg2 =0
      DisableGadget bearbeiten_win
      ueber_win = CreateWindow("Überschriften eingeben",220,220,260,260,bearbeiten_win,1)
      CreateLabel (ueber_links$,15,15,150,20,ueber_win)
      bearbeiten_links=CreateTextField(10,35,230,20,ueber_win)
      CreateLabel (ueber_rechts$,15,65,150,20,ueber_win)
      bearbeiten_rechts=CreateTextField(10,85,230,20,ueber_win)
      
      button_ok=CreateButton("OK",30,120,80,20,ueber_win,1)
      
      ueber_links$ = ""
      ueber_rechts$ = ""
      ActivateGadget bearbeiten_links   
      
      Repeat
         
         Select WaitEvent(100)
               
;Button abfragen      
            Case $401
               
               If EventSource()=button_ok Then
                  ueber_links$=TextFieldText$(bearbeiten_links)
                  ueber_rechts$=TextFieldText$(bearbeiten_rechts)
                  
                  Ausstieg2 = 1
               EndIf
               
               
         End Select
         
         
      Until Ausstieg2 =1
      EnableGadget bearbeiten_win
      FreeGadget ueber_win
      
   EndIf
   
   For I = 1 To 100
      wort_links$(I) = ""
      wort_rechts$(I) = ""
   Next
   
   
   CreateLabel (ueber_links$,15,15,150,20,bearbeiten_win)
   bearbeiten_links=CreateTextField(10,35,230,20,bearbeiten_win)
   CreateLabel (ueber_rechts$,15,65,150,20,bearbeiten_win)
   bearbeiten_rechts=CreateTextField(10,85,230,20,bearbeiten_win)
   
   button_ok=CreateButton("OK",30,120,80,20,bearbeiten_win,1)
   button_ab=CreateButton("Fertig",130,120,80,20,bearbeiten_win,1)
   
   daten_zeiger = 1
   
   
   Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
   ActivateGadget bearbeiten_links   
   
   Repeat
      If KeyDown(28)=True Then
         wort_links$(daten_zeiger) = TextFieldText(bearbeiten_links)
         wort_rechts$(daten_zeiger) = TextFieldText(bearbeiten_rechts)
         daten_zeiger = daten_zeiger + 1
         Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
      EndIf
      
         
      If daten_zeiger = 100 Then Ausstieg = 1
      Select WaitEvent(100)
            
;Button abfragen      
         Case $401
            
            If EventSource()=button_ok Then
               wort_links$(daten_zeiger) = TextFieldText(bearbeiten_links)
               wort_rechts$(daten_zeiger) = TextFieldText(bearbeiten_rechts)
               daten_zeiger = daten_zeiger + 1
               Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
               ActivateGadget bearbeiten_links   
               
            EndIf
            
            If EventSource()=button_ab Then Ausstieg = 1
            
            
      End Select
      
      
   Until Ausstieg =1
   Datei_speichern()
   Ueberschrift()
   EnableGadget window
   daten_zaehler = daten_zaehler - 10
   Textfeld()
   FreeGadget bearbeiten_win
   ActivateWindow window

End Function

Function Datei_anfuegen()

daten_zaehler = 0
Ausstieg = 0
I = 0
Repeat
I = I+1
If  wort_links$(I) = ""  Then  daten_zaehler = I
If I =100 Then
Notify "Pro Übung können nur 100 Vokabel eingegeben werden !"
daten_zaehler = 100
EndIf

Until daten_zaehler <> 0

I = 0
A = daten_zaehler
   
   
;Hauptfenster deaktivieren und neues erstellen
   DisableGadget window
   bearbeiten_win = CreateWindow("Vokabel einfügen",200,200,260,200,window,1)
   
   
   
   
   CreateLabel (ueber_links$,15,15,150,20,bearbeiten_win)
   bearbeiten_links=CreateTextField(10,35,230,20,bearbeiten_win)
   CreateLabel (ueber_rechts$,15,65,150,20,bearbeiten_win)
   bearbeiten_rechts=CreateTextField(10,85,230,20,bearbeiten_win)
   
   button_ok=CreateButton("OK",30,120,80,20,bearbeiten_win,1)
   button_ab=CreateButton("Fertig",130,120,80,20,bearbeiten_win,1)
   
   daten_zeiger = daten_zaehler
   
   
   Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
   ActivateGadget bearbeiten_links   
   Repeat
      
      If daten_zeiger = 100 Then Ausstieg = 1
      Select WaitEvent(100)
            
;Button abfragen      
         Case $401
            
            If EventSource()=button_ok Then
               wort_links$(daten_zeiger) = TextFieldText(bearbeiten_links)
               wort_rechts$(daten_zeiger) = TextFieldText(bearbeiten_rechts)
               daten_zeiger = daten_zeiger + 1
               Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
               
               ActivateGadget bearbeiten_links
               
            EndIf
            
            If EventSource()=button_ab Then Ausstieg = 1
            
            
      End Select
      
      
   Until Ausstieg =1
   Datei_speichern()
   Ueberschrift()
   EnableGadget window
   daten_zaehler = daten_zaehler - 10
   Textfeld()
   FreeGadget bearbeiten_win
   ActivateWindow window

End Function

Function Vokabel_loeschen()
Auswahl_vokabel()
x=Confirm("Vokabel löschen ?"+Chr$(13)+Chr$(13)+ueber_links$+Chr$(13)+wort_links$(daten_zeiger)+Chr$(13) +ueber_rechts$+Chr$(13)+wort_rechts$(daten_zeiger)+Chr$(13),1)
If x=1 Then
For I = daten_zeiger To 99
wort_links$(I) = wort_links$(I+1)
wort_rechts$(I) = wort_rechts$(I+1)
Next
wort_links$(100) = ""
wort_rechts$(100) = ""
EndIf
daten_zaehler = daten_zaehler - 20
Textfeld()

End Function

Function Vokabel_anzeigen(bearbeiten_links,bearbeiten_rechts)
   SetGadgetText bearbeiten_links, wort_links$(daten_zeiger)
   SetGadgetText bearbeiten_rechts, wort_rechts$(daten_zeiger)
   
End Function


Function Abfragen()
;Alte Abfragedaten löschen
   
   For i = 1 To 100
      abfrage$(i) = ""
      richtig$(i) = ""
   Next
   
   
   daten_zaehler = 0
   Ausstieg = 0
   frage$ = ""
   korrekt = 0
   
; Erfragen wieviele Vokabel Abgefragt werden sollen
;-------------------------------------------------------------------------
   
   DisableGadget window
   ; ermittel wieviele Vokabel es gibt und in wort_max speichern
   For I = 1 To 100
      If wort_links$(I) <> "" Then wort_max = I
   Next
   
   frage_win=CreateWindow("Vokabel abfragen",200,200,360,200,window,1)
   
   CreateLabel ("Nach welcher Sprache soll gefragt werden ?",15,15,230,20,frage_win)
   
   sprache1=CreateButton(ueber_links$,20,40,80,20,frage_win,3)
   sprache2=CreateButton(ueber_rechts$,100,40,150,20,frage_win,3)
   SetButtonState sprache2,1
   CreateLabel ("Wieviele Vokabel sollen abgefragt werden ? (max. " + wort_max +")",20,70,300,20,frage_win)
   eingabe=CreateTextField(20,90,30,20,frage_win)
   
   button_ok=CreateButton("OK",30,120,80,20,frage_win,1)
   button_ab=CreateButton("Abbrechen",130,120,80,20,frage_win,1)
   
   Repeat
      Select WaitEvent(100)
         Case $401
            
            If EventSource()=button_ok Then
               eingabe1$ = TextFieldText(eingabe)
               Zahl = Int(eingabe1$)
               If Zahl < 1 Or Zahl > wort_max Then
                  Notify "Eingabe falsch"+Chr$(13)+Chr$(13)+"Bitte eine Anzahl zwischen 1 und "+wort_max+" eingeben",1
                  ActivateGadget eingabe
               Else
                  Ausstieg =1
                  
               EndIf         
                  
            EndIf
            
            If EventSource()=button_ab Then Ausstieg = 2
            
      End Select
      
            
   Until Ausstieg >0
;-------------------------------------------------------------------------
   
   
   If Ausstieg = 2 Then
      
   EnableGadget window
   
   FreeGadget frage_win
   ActivateWindow window
   Return
   EndIf
   
   Ausstieg = 0
   If ButtonState(sprache1)=1 Then
      frage$= ueber_links$
      
      
   Else
      frage$ = ueber_rechts
      
      
      
   EndIf
   
   
   
   FreeGadget frage_win
   
   bearbeiten_win = CreateWindow("Vokabel abfragen",200,200,640,340,window,1)
   
   
   CreateLabel (frage$,15,15,100,20,bearbeiten_win)
   ;bearbeiten_links=CreateTextField(10,35,190,20,bearbeiten_win)
   CreateLabel ("Antwort",220,15,100,20,bearbeiten_win)
   ;bearbeiten_rechts=CreateTextField(210,35,190,20,bearbeiten_win)
   CreateLabel ("Richtig",420,15,100,20,bearbeiten_win)
   
   For i = 1 To 10
      
      y = 22*i+20
      textfeld_links(i)=CreateTextField(10,y,190,20,bearbeiten_win)
      textfeld_rechts(i)=CreateTextField(210,y,190,20,bearbeiten_win)
      textfeld_antwort(i)=CreateTextArea(410,y,190,20,bearbeiten_win)
      
      
   Next
   
   For i = 1 To Zahl
      X = Rand(1,wort_max)
      If  frage$ = ueber_links$  Then
         abfrage$(i) = wort_links$(x)
         richtig$(i) = wort_rechts$(x)
      ElseIf frage$ = ueber_rechts$ Then
         abfrage$(i) = wort_rechts$(x)
         richtig$(i) = wort_links$(x)
         
      EndIf
      
      
   Next
   
   
   
   button_ok=CreateButton("Prüfen",30,280,80,20,bearbeiten_win,1)
   button_weiter=CreateButton("Weiter",130,280,80,20,bearbeiten_win,1)
   button_ab=CreateButton("Abbrechen",230,280,80,20,bearbeiten_win,1)
   DisableGadget button_weiter
   Abfragefeld()
   
   Repeat
      Select WaitEvent(100)
         Case $401
            If EventSource()=button_ok Then    
               For i = 1 To 10
                  antwort$(i) = TextFieldText(textfeld_rechts(i))
                  SetGadgetText textfeld_antwort(i),richtig$(i+daten_zaehler-10)
                  If antwort$(i) = richtig$(i+daten_zaehler-10) Then
                     SetTextAreaColor textfeld_antwort(i),22,246,64,1
                     korrekt = korrekt + 1
                     
                  Else
                     
                     SetTextAreaColor textfeld_antwort(i),255,0,0,1
                     
                  EndIf
                  
               Next
               Notify korrekt + " wurden richtig eingegeben"
               
               DisableGadget button_ok
               EnableGadget button_weiter
            EndIf
            If EventSource()=button_weiter Then
               For i = 1 To 10
                  SetGadgetText textfeld_antwort(i),""
                  SetTextAreaColor textfeld_antwort(i),255,255,255,1
               Next
               
               EnableGadget button_ok
               Abfragefeld()
               DisableGadget button_weiter
            EndIf
            If EventSource()=button_ab Then Ausstieg = 2
               
      End Select
      
      
   Until Ausstieg >0
   
   If Ausstieg = 2 Then
      
      EnableGadget window
      
      FreeGadget bearbeiten_win
      ActivateWindow window
      Return
   EndIf
   
   
End Function

Function Abfragefeld ()
   
   If daten_zaehler > 90 Then daten_zaehler = 90
   If daten_zaehler < 0 Then daten_zaehler = 0
   If abfrage$(daten_zaehler+1)<>"" Then
      
   For i=1 To 10
      
      
      SetGadgetText textfeld_links(i), abfrage$(i+daten_zaehler)
      
      
   Next
   
   daten_zaehler = daten_zaehler + 10
   Else Notify "Alle Vokabeln wurden abgefragt !"
EndIf

End Function

Commander

BeitragSa, Nov 03, 2007 3:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Alles zurück !!

Jetzt hab ichs!

Mit 4 bei createbutton klappt es 1A !!!
Keine Ahnung was ich da das letztemal probiert habe und wo ich bei welche createbutton ich die 4 gesetzt habe.

Danke für die Mühe Razz

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group