Hi
Mach es erst mal ganz einfach.
Ich hatte gesagt, das du dir zwei Comboboxen auf deine Form bringen und darüber zwei Editfelder legen sollst. Die Eingabe läuft folgendermaßen ab:
Zuerst sind die Editfelder leer. Nun schreibst du die Vokabeln in die Editfelder, also Deutsch beispielsweise Rechts und englisch links. Dabei macht es Sinn, die Editfelder mit
Ed_Deutsch und
Ed_Englisch zu benennen und die Comboboxen
CB_Deutsch und
CB_Englisch.
Jetz brauchst du einen Button, der bei Betätigung dieses Vokabelpaar in die Comboboxen überträgt und dir die Editfelder wieder leert.
Delphi-Quelltext
1: 2: 3: 4:
| Cb_Englisch.Items.Add(Ed_Englisch.Text); Cb_Deutsch.Items.Add(Ed_Deutsch.Text); Ed_Deutsch.Text:=''; Ed_Englisch.Text:=''; |
Damit hast du deinen Eingabe-Editor. Du kannst dir nun überlegen, wie du doppelte oder leere Eingaben verhindern kannst. Das gehört auch dazu. Auch kannst du diese Ebene zur Korrektur benutzen, indem du die zweite Vokabel mit anzeigst, wenn du einen Eintrag aus der Combobox aufrufst. Dann allerdings nicht mit .Add( ..) eintragen, sondern unter Verwendung vom ItemIndex zuweisen
Cb_Englisch.Items[Cb_Englisch.ItemIndex]:= Ed_Englisch.Text;
Wobei der ItemIndex der Combobox benutzt werden muß, aus welcher du einen Eintrag ausgewählt hast.
Und So kann z. B. die Ereignis-Procedure einer Combobox im Editiermodus aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Procedure TMyForm.Cb_englischOnChange(Sender: TObject); Begin ED_Englisch.Text:=Cb_Englisch.Text; Cb_Deutsch.ItemIndex:=Cb_Englisch.ItemIndex; Cb_Deutsch.Text:=Cb_Deutsch.Items[CB_Deutsch.ItemIndex]; Ed_Deutsch.Text:=Cb_Deutsch.Text; End; |
Kommen wir nun zur Speicherung deiner Eingaben. Es gibt eine relativ einfache Methode, unter Verwendung von SaveToFile und LoadFromFile Stringlisten auf ein Speichermedium zu schreiben, bzw. davon zu holen.
Einfach nur
Delphi-Quelltext
1: 2:
| Cb_Englisch.SavetoFile(‚Englischvokabel’); Cb_Deutsch.SaveToFile(‚Deutschvokabel’); |
In ein Buttonereignis schreiben und fertig. Zum Laden der Daten entsprechend
.LoadFromFile.
Nun ja, es ist nicht grad das gelbe vom Ei, das weiß ich auch, aber bevor ich hier auf ein etwas umfassenderes Speicherhandling eingehe, geb ich erst mal ganz einfache Tipps. Außerdem ist in der Delphi-Hilfe ein Beispiel für Dateizugriffe.
Um nun das Vokabelprogramm zum lernen zu benutzen muß die Ereignisprocedure der Comboboxen etwas geändert werden.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Procedure TMyForm.Cb_englischOnChange(Sender: TObject); Begin ED_Englisch.Text:=Cb_Englisch.Text; Cb_Deutsch.ItemIndex:=Cb_Englisch.ItemIndex; Cb_Deutsch.Text:=Cb_Deutsch.Items[CB_Deutsch.ItemIndex]; Ed_Deutsch.Text:=’’; End; |
Da du zur Laufzeit eine Procedure nicht ändern kannst, gibt es folgende Möglichkeit, die Procedure für beide Zwecke zu benutzen. Du schaffst dir eine globale Boolsche Variable, nennen wir sie Edit_Mode
Also
Edit_Mode : Boolean;Wenn du Editieren oder neue Vokabeln eingeben willst, dann setzt du
Edit_Mode:=true;Beim Vokabeln lernen entsprechend
Edit_Mode:=False;
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Nun kannst du Edit_Mode in der Ereignisprocedure der Combobox einbauen: Procedure TMyForm.Cb_englischOnChange(Sender: TObject); Begin ED_Englisch.Text:=Cb_Englisch.Text; Cb_Deutsch.ItemIndex:=Cb_Englisch.ItemIndex; Cb_Deutsch.Text:=Cb_Deutsch.Items[CB_Deutsch.ItemIndex]; If Edit_Mode then Ed_Deutsch.Text:=Cb_Deutsch.Text Else Ed_Deutsch.Text:=’’; End; |
Die Buttons, die du zur Steuerung deines Programmes brauchst, solltest du selbst hinbekommen.
Da wäre die Schalter für Editiermodus, für Lernmodus, für Daten eintragen, für Speichern, für Daten holen und für den Vergleich im Lernmodus.
Damit solltest du nun arbeiten können.
Zier dich nich so, ich krieg dich schon....