GetItemText
-
Hallihallo
Also habe da so ein lustiges CListControl, mit dem ich fröhliche Werte aus einer datenbank auslese und beim starten automatisch reinschreibe. Jetzt würde ich gerne die Löschabfrage so machen, das alles bis auf einen bestimmten String ("Hugo") gelöscht werden kann. Die Klasse CListCtrl bietet da ziemlich viele Methoden und GetItemText bietet eigentlich genau das was ich suche, doch es funktioniert nicht... ? o.O
Mein Code sieht folgendermaßen aus://Wer ist makiert? int index=m_ListCtrl.GetSelectionMark(); CString testText(m_ListCtrl.GetItemText(index, 1)); if (!(testText=="Hugo")) { //lösche makiertes objekt }
Nach dem hier -> KLICK <- müsste das doch eigentlich korrekt sein, leider funktioniert es nicht.
Wenn ich den debugger anschmeiß dann steht kurz vor der ifAbfrage in testText soetwas -> {0x00326b90 ""}
Was mache ich falsch? Würde mich sehr über hilfe freuen.
~Zanerva
-
wie wäre es mit
if (!(testText=="Hugo")) { m_listbox.DeleteItem( index ); }
-
Ja, löschen kann ich auch, nur leider kann ich nicht verhindern das Hugo ebenfalls gelöscht wird
-
Steht Hugo in der zweiten Spalte vom ListCtrl ?
-
PS:
wieviele spalten hast du denn?
wenn nur eine spalte dann musst du
index, 0
machen.
ausserdem würd ich machen ( wenn auf nem button reagiert )
int index=m_ListCtrl.GetSelectionMark(); if ( index > -1 ) // sonst kann es krachen, wenn du auf dem button klickst aber nichts markiert ist { }
notfallkoffer, versuche auch
CString testText = m_ListCtrl.GetItemText(index, 1); // dass muss gehen
-
isabeau schrieb:
Steht Hugo in der zweiten Spalte vom ListCtrl ?
das meinte ich. wenn hugo in der ersten, dann
index, 0
kommt immer wieder, das leute bei der ersten spalte
index, 1
machen
-
Ja, ihr habt Recht, habe mich schon gewundert warum Hugo immer gelöscht wird.
Mein eigentlicher Fehler aber war, das ich versucht habe 2 string mittels "==" zu vergleichen, und da sollte man doch lieber auf strcmp zurückgreifen.Ich hocke den ganzen tag schon an den 5 zeichen code, und mir fällt das nicht auf... amen !
Danke auch allen nochmal
-
was geht mit dir?
2 CStrings vergleicht man mit "=="
ist also richtig
-
Dann ist wohl noch irgendwo nen Leerzeichen oder sowas mit drin, weil ich kann 2 Strings wunderbar mit "==" vergleichen
-
newkid_ hat Recht, dachte das CString ähnlichkeiten mit CHAR hätte, wenn mans vergleicht, was aber nicht der Fall ist.
Der Codeschnippsel von newkid war mein denkfehler. Danke nochmal