Eintrag aus ListBox entfernen.
-
Dies ist mein Code aus dem ein Eintrag raus soll bzw. er soll erst garnicht hinzugefügt werden:
TSearchRec sr; ListBox1->Clear(); if (FindFirst("Mods\\*", faDirectory, sr) == 0) if (sr.Name == ".") //Hier wird nach einem Punkt gesucht //Hier muss der Punkt entfernt werden do ListBox1->Items->Add(sr.Name); while (FindNext(sr) == 0); FindClose(sr);
-
ZeroOne schrieb:
Dies ist mein Code aus dem ein Eintrag raus soll bzw. er soll erst garnicht hinzugefügt werden:
interesant.. und weiter?
gewöhne dir an, klare fragen zu stellen.. je genauer sie ist, desto präzisere antworten kriegst du in der regel.wenn du wissen willst, wie man nen eintrag aus ner listbox löschen kann, dann studiere dir mal die BCB-Hilfe zu TListBox.. vorallem die Methoden. bin mir sicher da findest du eine funktion die entsprechend heisst.
-
Das einzigste was ich da finde ist Clear(). Das bringt mir aber nix weil ich ja nur einen Eintrag raushaben will und nicht alle.
-
ok, kleiner tipp noch dazu:
die daten die angezeigt werden, werden mit der Klasse TStrings (Listbox-Eigenschaften "items") gehandelt
ListBox1->items->...
dort wirst du zum Ziel deiner suche kommen
-
Auch wenn das jetzt etwas ketzerisch wirkt: Wäre es nicht günstiger, den Punkt gar nicht erst einzufügen? Allerdings müsstest du dazu deinen Code etwas umstrukturieren...
-
Wie sieht es mit folgender Erweiterung in Deinem Code aus ?
Die Stelle an der er muß darfst Du selber erratenif ( sr.Name != "." && sr.Name != ".." ) ListBox1->Items->Add(sr.Name);
-
Also der Code sieht jetzt so aus:
TSearchRec sr; ListBox1->Clear(); if (FindFirst("Mods\\*", faDirectory, sr) == 0) if (sr.Name != "."&& sr.Name != "..") do ListBox1->Items->Add(sr.Name); while (FindNext(sr) == 0); FindClose(sr);
Das wird auch ohne Fehler Compiliert. Aber die Listbox zeigt nichts an
.
-
Lies Dir die 2 Zeilen von YLIREBUS
nochmal gaaaaanz langsam und geeeenauuuuu durch und denk 2 min darüber nach!!!
-
Dann frage ich mich nur warum da "Add" steht. Ich will die Punkte ja weg haben.
-
Lustig lustig hier
-
Bin schon mit BigNeal's Hilfe drauf gekommen.
TSearchRec sr; ListBox1->Clear(); if (FindFirst("Mods\\*", faDirectory, sr) == 0) do ListBox1->Items->Add(sr.Name); while (FindNext(sr) == 0); FindClose(sr); ListBox1->Items->Delete(!"."); ListBox1->Items->Delete(!"..");
-
ZeroOne schrieb:
ListBox1->Items->Delete(!"..");
BCB-Hilfe schrieb:
void __fastcall Delete(int Index)
und was das "!" soll, frage ich einfach mal nicht
-
Außerdem ist die vorgehensweise total unlogisch. Das könnte dir später bei komplexeren Programmen mal das Genick brechen.
-
Ohne "!" kommt ne Fehlermeldung. Und wenn er noch so Uunlogisch ist hauptsache es funktioniert
.
-
genau das ist der nährboden für programme, die unvorgesehene probleme bringen!
und in der regel kannst du dir merken, was unlogisch ist, funktioniert auch nicht wirklich..
-
ZeroOne schrieb:
Dann frage ich mich nur warum da "Add" steht. Ich will die Punkte ja weg haben.
Dann hast Du den zweizeiler nicht richtig gelesen!!!
(Kopschschuettel!!!
)
PS: Noch 'n Tip!
Was steht VOR ... ADD(...) ?????
Was koennte diese Zeile bedeuten?PS2: 'n zweiter Tip!
Du willst doch nicht wirklich lösche, Du willst doch einige Eintraege NICHT haben, aber einige, andere sollen drin sein (GEADDED)
-
Hallo,
Aber die Listbox zeigt nichts an
Deine if-Bedingung ist auch an der falschen Stelle.
Und das das :
ListBox1->Items->Delete(!".");
funktioniert, liegt auch nur daran, das der BCB vieles automatisch castet (hier von String nach bool bzw. int). Sollten die Punkte nicht ganz vorne in der ListBox stehen, wird was anderes als das Gewünschte gelöscht.
Nash