Wie finde ich herraus, welche Zeile/Feld der User in einem DBGrid angeklickt hat?
Hallo
Seit paar Tagen versuche ich ein Problem zu lösen.
Wenn ich in einem DBGrid eine Tabelle darstelle und möchte, dass der User einen Datensatz anklicken kann und dieser Datensatz dann detailierter in ein paar DBEdits dargestelt werden, wie finde ich dann herraus welchen Datensatz der User angeklickt hat?
Ich habe einen Code-Schnipsel gefunden, aber er funktioniert nicht so ganz.
// Code
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (DBGrid1->SelectedRows->Count > 0)
{
AnsiString s = "";
TDataSet *pDS = DBGrid1->DataSource->DataSet;
for (int i=0; i < DBGrid1->SelectedRows->Count; i++)
{
pDS->GotoBookmark((void *)DBGrid1->SelectedRows->Items[i].c_str());
for (int j = 0; j < pDS->FieldCount; j++)
{
if (j>0)
s = s+", ";
s = s + pDS->Fields->Fields[j]->AsString;
}
ListBox1->Items->Add(s);
s = "";
}
}
Mein Problem bei diesem Schnipsel ist, dass DBGrid1>SelectedRows->Count immer 0 ist.
Kann mir jemand da helfen?
Oder vielleicht eine andere Idee hat?