Hallo!
So sollte es funzen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TFischform.ZubClick(Sender: TObject); var z:longint; vorhanden:Boolean;
begin vorhanden := False;
For Z:=1 To NGrid.RowCount-1 Do begin If (NGrid.Cells[0, Z]=P1.Text) And (NGrid.Cells[1, Z]=P2.Text) Then Begin ShowMessage('Dieser Spieler existiert bereits.'); vorhanden := True; end; End;
if not vorhanden then begin NGrid.RowCount:=NGrid.RowCount+1; NGrid.Cells[0, NGrid.RowCount-1]:=P1.Text; NGrid.Cells[1, NGrid.RowCount-1]:=P2.Text; NGrid.FixedRows:=1; end;
P1.Clear; P2.Clear; end; |
Da das Grid die 1. Zeile fest hat, darf die Schleife nur ab der 2. Zeile (Row=1) laufen!
Das Vergrößern des Grids sollte auch nur erfolgen, wenn was eingefügt wird (bei Deinem Source wird jedesmal eingefügt, auch wenn der Name schon existiert - leere Einträge sind die Folge). Beim Einfügen weiß ich ja, daß mehr als 1 Zeile da sind, so daß ich damit FixedRows setzen kann.
Die Variable z deklarieren wir bitte lokal, sonst kann es bei der ereignisgesteuerten Windows-Programmierung zu Seiteneffekten kommen (keiner weiß, was alles gleichzeitig läuft, z.B. auf Timer- Tastatur- und Mausereignisse!)
Gruß
Dietmar Brüggendiek