Announcement

Collapse
No announcement yet.

Zugriffsproblem auf DBGrid im MultiSelect-Mode

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriffsproblem auf DBGrid im MultiSelect-Mode

    Hallo,

    irgendwie habe ich da ein Verständnisproblem. Ich möchte von den markierten Zeilen eines TDBGrid die jeweiligen IDs der einzelnen Datensätze wissen. ImPrinzip sollte das doch so gehen:

    for(int i = 0 ; i < dbGrid->SelectedRows->Count ; i++) {
    TBookmark SavePlace = TBookmark(dbGrid->SelectedRows.Items[i]);
    dbGrid->DataSource->DataSet->GotoBookmark(SavePlace);
    int dID = dbGrid->DataSource->DataSet->FindField("ID")->Value;
    // ...
    }

    Allerdings meckert immer der Compiler:
    >>TBookmark SavePlace = TBookmark(dbGrid->SelectedRows.Items[i]);
    >>[bcc32 Fehler] ...: E2294 Auf linker Seite der Struktur ist . oder .* erforderlich

    Ich habe schon verschiedene Szenarien probiert, leider ohne Erfolg. Die Pascal-Lösung habe ich im Web gefunden, bringt mich allerdings nicht weiter.

    Kann mir jemand ein Licht anzünden?
    Danke, Ralf

  • #2
    Versuchs doch mal mit: "dbGrid->SelectedRows->Items[i]"

    Comment


    • #3
      Hallo Manfred,

      hier liegt genau das Problem. Selbst wenn der Code alleine in der Zeile steht, wird die Fehlermeldung produziert:
      [bcc32 Fehler] ...: E2294 Auf linker Seite der Struktur ist . oder .* erforderlich
      Der Cursor steht dann im Code jeweils ..."dbGrid->SelectedRow{hier}s->Items[i]".

      Auch andere Varianten funktionieren nicht:
      TDataSet *pDS = dbGrid->DataSource->DataSet;
      pDS->GotoBookmark((void* )dbGird->SelectedRows.Items[i]);

      Ich verwende den XE3 C++Builder.

      Grüße, Ralf

      Comment


      • #4
        Der Fehler ist hier, das du beim Zugriff auf "Items" einen Punkt benutzt.
        "SelectedRows" ist ein Zeiger. Hier musst du ein "->" benutzen.

        Comment


        • #5
          Hallo Manfred,

          super - vielen Dank!

          Grüße, Ralf

          Comment

          Working...
          X