SelectedRows



  • hallo,

    ich habe mich mit SelectedRows befasst schaffe es aber nicht die ausgewälten Zeilen meines DBGrids zu Identifizieren, das Beispiel das es in der Hilfe gibt half mir auch nicht weiter da es bei mir nicht funktioniert.

    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]);
          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 = "";
        }
      }
    

    der fehler lautet:
    [C++ Fehler] verkehrsmittel_formular.cpp(157): E2031 Typumwandlung von 'AnsiString' nach 'void *' nicht zulässig.

    kann mir jemand helfen?

    edit: so besser?



  • es ist jedesmal höchst intressant zu hören ,dass ES nicht funktioniert.

    ich empfehle dir mal diese Lektüre: http://www.lugbz.org/documents/smart-questions_de.html



  • Hat sich niemand mit dem mehrfachen selektieren von DBGrid Zeilen befasst?



  • 1. wenn du editierst, sieht man nicht, dass neue infos stehen.. besser neues posting machen
    2. wenn du so eine Fehlermeldung angiebst, gib auch an, wo der Compiler hinspringt. wir können shclecht erraten, welche Zeile die nr. 157 ist.

    zum Problem:
    mit den vorhandenen Infos gehe ich mal davon aus, dass der Fehler in dieser Zeile auftritt:

    pDS->GotoBookmark((void* )DBGrid1->SelectedRows->Items);
    

    das Problem ist, dass AnsiString kein Zeiger ist.
    um einen Zeiger auf den string zu bekommen, gibts die Funktion [i]AnsiString::c_str()*

    wenn ich richtig liebe funktionierts mit:

    pDS->GotoBookmark((void* )DBGrid1->SelectedRows->Items[i].c_str());
    

    edit: aber das würde ja auch richtig im Beispiel von der BCB-Hilfe stehen, das du kopiert/abgeschrieben hast(vermute ich jetzt mal).



  • also danke für den c_str() das hat geholfen aber in meiner hilfe (Borland 4) steht das ohne das c_str().

    danke nochmal



  • webmaster1987 schrieb:

    also danke für den c_str() das hat geholfen aber in meiner hilfe (Borland 4) steht das ohne das c_str().

    schon? dan ist es wohl noch ein Fehler.. Bei mir mit BCB6 ist es mit c_str()



  • sieht so aus als hätten wir gerade einen fehler in der BCB4 Hilfe gefunden 🤡


Anmelden zum Antworten