Wie genau stellst du dir denn "bei der Eingabe schon merken" vor ?
Man kann jedesmal, wenn ein Zeichen für einen der vier Werte eingegeben wird,
prüfen, ob es bereits einen solchen Satz gibt.
Man kann auch erst alle vier Werte eingeben und dann prüfen.
Man kann die Prüfung parallel in einem Thread ausführen, dann wird die Eingabe
nicht unterbrochen, die Programmierung ist dann etwas aufwendiger, du musst u.a.
darauf achten, dass der Thread seine eigene Session verwendet.
oder du machst es eben doch mit locate() in deiner Methode BitBtn2Click()
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm2.BitBtn2Click(Sender: TObject); begin If Table1.Locate('Datum;Stunde;Haus;Raum', VarArrayOf([dbedit2.text,DBLookupComboBox3.Text, DBLookUpComboBox1.Text,DBLookUpComboBox2.Text]), [loCaseInsensitive]) then begin MessageDlg('Satz bereits vorhanden',mtWarning,mbOK,0); end else begin form3.Table1.Insert; form3.Table1.FieldValues['Datum'] := dbedit2.text; form3.Table1.FieldValues['Stunde'] := DBLookupComboBox3.text; form3.Table1.FieldValues['Haus'] := DBLookupComboBox1.text; form3.Table1.FieldValues['Raum'] := DBLookupComboBox2.text; form3.Table1.FieldValues['Klassenstufe'] := DBLookupComboBox4.text; form3.Table1.FieldValues['Klasse'] := DBLookupComboBox5.text; form3.Table1.FieldValues['Fach'] := DBLookupComboBox6.text; form3.Table1.FieldValues['Materialien'] := DBLookupComboBox7.text; form3.Table1.FieldValues['Lehrer'] := dbedit1.text; form3.Table1.Post; end; end; |