TListBox: Ist ein Item selektiert?
-
tach,
irgendwie geht das nicht. hier der codeif(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).