AddObject frage



  • gelöscht



  • Hallo

    @ YLIREBUS : dir ist aber schon klar, das das nicht funktionieren wird? Nicht nur wegen dem cast, sondern einfach weil tblOrte->FieldByName("ort_id") immer auf einen Datensatz zeigt, der sich nicht durch die Auswahl der ComboBox verändert?

    bis bald
    akari



  • Also ich mache folgende :

    Anhängen:

    CB_Buero->Items->AddObject(qryBASIS->FieldByName("Buero")->AsString, (TObject*)(int)qryBASIS->FieldByName("ID")->AsInteger);
    

    auslesen:

    int(CB_Buero->Items->Objects[CB_Buero->ItemIndex]);
    

    und bei mir funzt es die id ist immer die die zu dem Büro gehört .



  • Hallo

    gut, dann habe ich das falsch verstanden...
    Aber wieder mal eine unsaubere Sache mit den casts. Man sollte wenigstens statt dem C-Style Cast dann den reinterpret_cast nehmen.

    bis bald
    akari



  • kann ich bestätigen, klappt einwandfrei:

    habe YLIREBUS beispiel eingebunden, und auslesen tue ich so:

    Caption = IntToStr((int) cmbWohnort->Items->Objects[cmbWohnort->ItemIndex]);
    

    scheint tadellos zu klappen, oder aht noch jemand begründete einwände?!

    gruß gerd

    ps: habe es jetzt auch verstanden! 🙂 danke an alle!

    @akari: der reinterpreter_cast würde mich auch interessieren, wie das damit gelöst werden könnte!



  • YLIREBUS schrieb:

    CB_Buero->Items->AddObject(qryBASIS->FieldByName("Buero")->AsString, (TObject*)(int)qryBASIS->FieldByName("ID")->AsInteger);
    

    wozu der cast auf int?

    int a = reinterpret_cast <int> (ComboBox1->Items->Objects[ComboBox1->ItemIndex]);
    


  • Hallo

    reinterpret_cast<> ist ein Template aus dem C++ Standard. Das würde bei dir so aussehen :

    Caption = IntToStr(reinterpret_cast<int> (cmbWohnort->Items->Objects[cmbWohnort->ItemIndex]));
    

    Es ändert aber nichts an der Sache, das das ganze nicht sehr sauber ist.

    /Edit : zu spät...

    bis bald
    akari



  • gibt es eine möglichkeit es "sauber" hinzubekommen?

    gruß gerd



  • muss ich diese objects selbstständig aus dem speicher entsorgen?

    was passiert bei einem (eventuellen) absturz (auch vielleicht durch fremde applikationen, sprich windows hängt sich auf oder so, muss ich den speicher trotzdem irgendwie freimachen?

    gruß gerd



  • wenn sich windows aufhaengt ist es doch eh egal. 😉

    theoretisch wird das array von der kompo freigegeben. wenn du dort allerdings zeiger auf andere objekte speicherst, musst du die selber freigeben.


Anmelden zum Antworten