CheckListBox - nur ein Eintrag "checkbar"? (war: CheckListBox)



  • kurze frage, ich möchte eine checklistbox benutzen, in der ich einen eintrag per checkbox wählen können muss, der später in meinem programm genutzt werden sollte. die einträge sollen aber auch zum editieren (überschrift) genutzt werden. jetzt mein problem;gedacht hatte ich folgendes:

    ein klick in die checklistbox unter dem ereignis OnClickCheck gibt mir ja den index zurück, welche checkbox gewählt wurde, also dachte ich mir, den eintrag merken, alle checks (falls vorhanden) eleminieren, und anschliessend den aktuellen setzen, doch irgendwie schaffe ich es nicht die liste durchzugehen und das checkattribut zu setzen. so habe ich es versucht:

    int nr=chkList->ItemIndex;
    for(int i=0;i<chkList->Items->Count;i++)
    {
        chkList->Items[i]->Checked=false;
    }
    chkList->Items[nr]->Checked=true;
    

    es geht also nur darum, das immer nur ein eintrag markiert sein soll mit check. irgendwie klappt es allerdings nicht.

    kann mir dazu jemand helfen?

    danke im voraus

    gerd

    Edit:
    Bitte aussagekräftige Überschriften wählen. Danke!



  • Das Ding compilet aber? Fehlermeldungen? Interessanterweise habe ich bei meiner TCheckListBox keine Eigenschaft TCheckListBox::Items::Checked... Ich kann mir also kaum vorstellen, dass das compilierbar sein sollte...

    -junix



  • for(int i=0;i<chkList->Items->Count;i++)
    {
    	chkList->Checked[i]=false;
    }
    chkList->Checked[chkList->ItemIndex]=true;
    


  • hmmmm VergissEs... eigentlich hatte ich zum Ziel, gerd ein Bischen zum Nachdenken anzuregen, in der Hoffnung, dass er selber den Weg in die Doku findet und merkt, was man da machen könnte...

    danke, dass du das jetzt versaut hast... wie soll er denn so jemals strukturiertes Vorgehen (z.B. bei der Problemlösung) erlernen?

    -junix



  • @VergissEs

    vielen dank, das hatte ich gesucht.

    @junix

    ich bin gerne bereit mir die doku zu hilfe zu ziehen, aber da steht sowas in der art nicht so, wie die lösung jetzt lautete beschrieben:

    trotzdem danke.

    vielleicht weiss jemand noch nen hinweis auf die benutzung von kadao/kaado?

    hier: http://www.c-plusplus.net/forum/viewtopic.php?t=59598

    gruß gerd



  • gerd01 schrieb:

    @junix

    ich bin gerne bereit mir die doku zu hilfe zu ziehen, aber da steht sowas in der art nicht so, wie die lösung jetzt lautete beschrieben:

    äh ja, das ist auch relativ naheliegend. Ich köntne mir auch nicht vorstellen, wie der Doku Autor ausgerechnet dein problem vorhersehen sollte. Allerdings steht da zum BEispiel drin, dass TCheckListBox::Items::Checked inexistent ist, und dass dafür TCheckListBox::Checked existiert. Wo wiederum detailiert beschrieben ist, welche Funktion diese Eigenschaft hat.

    Daraus sollte ein fähiger Programmierer eigentlich die nötigen Schlüsse ziehen können um eine Funktion wie die von VergissEs zu konstruieren...

    Ich wollte dir den Denkweg aufzeigen, damit du exakt die oben genannten Gedankengänge machst... leider hat dies VergissEs vereitelt. denn Sind wir ehrlich: Die Lösung hat jetzt zwar genau dein spezifisches problem gelöst, bei einem ähnlichen Problem in einer anderen Situation wärst du aber wieder hier gestanden, weil dir gar nciht bewusst war, wie man die Doku einsetzen kann um solche Probleme zu lösen.

    -junix



  • ich bin ehrlich, in den meisten fällen benutze ich die doku, und komme eigentlich recht gut damit klar. das problem ist immer visual basic, welches sich im hinterhirn verankert. erfahrener programmierer? (hmm, in asm auf dem c64 wäre es niemals irgend ein problem geworden, damals war es noch einfach, obwohl man selber alles überwachen musste...) die manchmal kryptische art von c/c++ bringt mich manchmal ins grübeln, wo ich mir die lösungen schon fast selbst verperre.

    fakt ist, die hilfe ist sehr gut, soweit ich sie bis jetzt kenne, nur die ganzen sachen der vererbung liegen mir immer schwer im magen. in der regel suche ich auch meist selbst nach einer lösung, um mein problem zu bewältigen. ich will ja auch nicht nur code bekommen, und ihn einbinden, ohne ihn zu verstehen. (ICH WILL LERNEN) ok ich muss zu meinem leidwesen gestehen, dass diese routine im endeffekt wirklich kinderkram war, aber manchmal sieht man den wald vor lauter bäumen nicht! 🙂

    klarstellung: ich bin kein code-dieb, ich sehe es mir ersteinmal an, wenn ich es verstanden habe behebe ich mein problem, ansonsten frage ich nach bedenkzeit erneut nach.

    ich habe nichts gegen deine vorgehensweise (nase draufstupsen), die ist ok. nur es sind nicht immer nur code diebe am werk, die einfach nur code klauen, ohne ihn zu verstehen. ich lerne dabei eigentlich am meisten. ich will dir noch ein kleines beispiel geben:

    in der schule hatten wir c++ klassenprogrammierung. das ganze wäre für mich in der theorie so, dass ich niemals hätte mit klassen irgendetwas programmieren wollen. in der tat kam es dazu, dass ich mir darauf hin mal ein spiele-sourcecode angesehen habe, und auf einmal verstand, wie einfach etwas geht, wenn man es in klassen auslagert. resumé: es ist nicht immer die theorie, die einen vorwärts bringt, sondern eher die praxis, die den denkanstoss verpasst.

    trotzdem nochmals danke! 🙂


Anmelden zum Antworten