TListBox: Ist ein Item selektiert?



  • tach,
    irgendwie geht das nicht. hier der code

    if(ListBox1->Items->Count > 0)
                {
            		if(ListBox1->Selected[ListBox1->SelCount])
                	{
                		//ja es ist ein item ausgewählt
                	}
                	else
                	{
                		//nein, bitte ein item auswählen
                	}
                }
                else
                {
                	//keine einträge drin
                }
    

    was mache ich falsch?
    und ausserdem: fängt der index nicht bei 0 an? weil wenn ich > -1 mache, was dann 0 wäre, bekomme ich den fehler "....überschreitet das maximum -1"



  • for(int i = 0; i<ListBox1->Items->Count; i++)
    {
        if(ListBox1->Selected[i])
        {
            //ja es ist ein item ausgewählt
        }
    }
    

    foooogy schrieb:

    und ausserdem: fängt der index nicht bei 0 an? weil wenn ich > -1 mache, was dann 0 wäre, bekomme ich den fehler "....überschreitet das maximum -1"

    Der Index fängt bei 0 an. wenn du bei -1 anfängst zu zählen, wirft die ListBox eine Exception, das du den Index überschritten hast, weil du ja VOR Index 0 anfängst und dort nichts vorhanden ist.



  • danke für deine hilfe.
    geht das auch ohne schleife? 🙄 😉

    und was den index betrifft. ich war der meinung das ich ja in der if-anweisung mit dem grösser als operator abfrage, ob -1 grösser ist. somit muss die abfrage ja 0 (null) und grösser ergeben. nicht?



  • Das geht natürlich auch ohne Schleife. Wenn du abfragst ob etwas grösser -1 ist, erhälst du aus der if-Anweisung entweder true oder false, sonst nichts.



  • foooogy,
    der klassische Weg geht eher über TListBox::ItemIndex. Der Wert hängt davon ab, ob Du Multi-Select zuläßt oder nicht (siehe BCB-Hilfe).


Anmelden zum Antworten