Krany
Mitglied
Hi
hab ein Problem, ich will zu einem StringGrid einen Wert hinzufügen lassen mit einer Prüfung, ob der Eintrag nicht schon vorhanden ist. Diese Prüfung hab ich in Form einer For-Schleife realisiert und ganz an den Anfang der Funktion ButtonClick geschrieben, das Problem ist aber, dass er die Schleife nur einmal aufruft und zwar bei der ersten Verwendung des Buttons, bei jedem weiteren verwenden überspringt er die Schleife.
noch einmal kurz und knapp für alle die noch nicht wissen worum es geht:
Programmstart -> Klick auf Button hinzufügen -> Tippe Werte ein -> klick auf endgültiges hinzufügen -> jetzt sollte er per For-Schleife prüfen ob es den Eintrag schon gibt oder nicht, doch er tut dies nur beim ersten neuen Eintrag, bei allen weiteren üerspringt er die Schleife.
Hier der Code:
hab ein Problem, ich will zu einem StringGrid einen Wert hinzufügen lassen mit einer Prüfung, ob der Eintrag nicht schon vorhanden ist. Diese Prüfung hab ich in Form einer For-Schleife realisiert und ganz an den Anfang der Funktion ButtonClick geschrieben, das Problem ist aber, dass er die Schleife nur einmal aufruft und zwar bei der ersten Verwendung des Buttons, bei jedem weiteren verwenden überspringt er die Schleife.
noch einmal kurz und knapp für alle die noch nicht wissen worum es geht:
Programmstart -> Klick auf Button hinzufügen -> Tippe Werte ein -> klick auf endgültiges hinzufügen -> jetzt sollte er per For-Schleife prüfen ob es den Eintrag schon gibt oder nicht, doch er tut dies nur beim ersten neuen Eintrag, bei allen weiteren üerspringt er die Schleife.
Hier der Code:
Code:
void __fastcall Taddgame::Button1Click(TObject *Sender)
{
for (l=0;l==z;l++) //l und z sind lokale variablen z-> zeilenvariable ; l-> laufvariable
{
if (Edit1->Text == Form2->StringGrid1->Cells[0][l]) //Vergleich Edit1 mit der Spalte 0 und Zeile l der Datenbank-Tabelle
{
Form2->Visible = true;
addgame->Visible = false;
Form2->Enabled = true;
}
Form2->Label1->Caption = l; //Anzeige der Variable in einem label des hauptformulars zur Kontrolle
}
if (z>=11)
{
Form2->StringGrid1->RowCount++;
}
Form2->StringGrid1->Cells[0][z] = Edit1->Text;
Form2->StringGrid1->Cells[2][z] = Edit2->Text;
Form2->StringGrid1->Cells[3][z] = Edit3->Text;
switch (ComboBox1->ItemIndex)
{
case 0: Form2->StringGrid1->Cells[4][z] = "Action"; break;
case 1: Form2->StringGrid1->Cells[4][z] = "Action-Adventure"; break;
case 2: Form2->StringGrid1->Cells[4][z] = "Action-Rollenspiel"; break;
case 3: Form2->StringGrid1->Cells[4][z] = "Adventure"; break;
case 4: Form2->StringGrid1->Cells[4][z] = "Aufbau-Strategie"; break;
case 5: Form2->StringGrid1->Cells[4][z] = "Denkspiel"; break;
case 6: Form2->StringGrid1->Cells[4][z] = "Echtzeit-Strategie"; break;
case 7: Form2->StringGrid1->Cells[4][z] = "Ego-Shooter"; break;
case 8: Form2->StringGrid1->Cells[4][z] = "Flugsimulation"; break;
case 9: Form2->StringGrid1->Cells[4][z] = "Fun-Game"; break;
case 10: Form2->StringGrid1->Cells[4][z] = "Mehrspieler-Shooter"; break;
case 11: Form2->StringGrid1->Cells[4][z] = "Rennspiel"; break;
case 12: Form2->StringGrid1->Cells[4][z] = "Rollenspiel"; break;
case 13: Form2->StringGrid1->Cells[4][z] = "rundenbasierende Strategie"; break;
case 14: Form2->StringGrid1->Cells[4][z] = "sonstige Simulation"; break;
case 15: Form2->StringGrid1->Cells[4][z] = "Sportspiel"; break;
case 16: Form2->StringGrid1->Cells[4][z] = "Wirtschaftssimulation"; break;
}
z++;
Form2->Label2->Caption = z; //Anzeige der Variable in einem label des hauptformulars zur Kontrolle
statusg++;
if ((Edit1->Text == "") && (Edit2->Text == "") && (Edit3->Text == "") && (ComboBox1->ItemIndex == -1))
{
z--;
statusg--;
}
Form2->StatusBar1->Panels->Items[1]->Text = IntToStr (statusg);
addgame->Visible = false;
Form2->Enabled = true;
}