ListView Sortieren
-
Hallo,
poste mal Deinen Quellcode.
Gruss
foodax
-
Hallo hier ist jetzt der Quellcode von dem Button der die kleinste DSifferenz ausgeben soll.
for each(ListViewItem ^lvi in listView1->Items) { String^ name; int min; int anz=listView1->Items->Count; if(min <= Convert::ToInt16(lvi->SubItems[1]->Text)) { min = Convert::ToInt16(lvi->SubItems[1]->Text); name = lvi->Text; } lblStatistik->Text = "Der beste ist " +name+ " mit der besten Differenz: " +min; }
Ich hoffe das es überischtlich ist.
-
Hallo,
Deine Variablen name und min sind lokale Variablen in der for each-Schleife und werden demnach bei jedem Schleifendurchlauf neu erstellt. Die müssen aus der Schleife, genauso wie Deine Ergebnisausgabe.
Zudem sollte Min noch vorbelegt werden, entweder mit einem Minimalen Wert, den man kennt oder mit dem ersten Eintrag.Gruss
foodax
-
Hallo,
danke mal wieder für deine Antwort eine kleine Frage hätte ich mal wieder dazu wie ich Min mit dem ersten EIntrag deklarieren kann?
Gruss Shashu
-
Hallo,
auch hier zwei Ansätze:
den Inhalt der 2. Spalte in der ersten Zeile bekommst Du mit:
listView1->Items[0]->SubItems[1]->Text;
Den Minimalwert einer Variable (hier Int16) bekommst Du mit
System::Int16::MinValue
bzw. analog auch mit anderen.
Gruss
foodax
-
foodax ich bin dir so dankbar :D.
Habe endlich dank deiner Hilfe alles hinbekommen wie kann ich dir nur danken?Ich poste nocheinmal kurz meinen Quellcode wo man aus der 2 Spalte den kleinsten Wert herausfindet.
Habe es leider nicht mit: System::Int16::MinValue hinbekommen.String^ name; intmin=Convert::ToInt16(listView1->Items[0]->SubItems[1]->Text); int anz= listView1->Items->Count; for(int x=0; x<anz; ++x) { if(Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text) < min) { min = Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text); name = listView1->Items[x]->Text; } }
-
Shashu schrieb:
Habe endlich dank deiner Hilfe alles hinbekommen wie kann ich dir nur danken?
Für jede hilfreiche Antwort anderen 10 x helfen ist Strafe genug?
String^ name; intmin=Convert::ToInt16(listView1->Items[0]->SubItems[1]->Text); int anz= listView1->Items->Count; for(int x=0; x<anz; ++x) { if(Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text) < min) { min = Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text); name = listView1->Items[x]->Text; } }
Du solltest dann auch den Namen vorbelegen oder im Nachhinein anhand der Position ermitteln oder <= abfragen oder oder ...
Denn in Deinem Beispiel 'müsste' der Name leer sein, wenn der Minimalwert in der ersten Zeile ist? Habe es nicht getestet aber so vom Bauchgefühl her.
Gruss
foodax
-
foodax schrieb:
Shashu schrieb:
Habe endlich dank deiner Hilfe alles hinbekommen wie kann ich dir nur danken?
Für jede hilfreiche Antwort anderen 10 x helfen ist Strafe genug?
Ok werde ich tun ;).
Du solltest dann auch den Namen vorbelegen oder im Nachhinein anhand der Position ermitteln oder <= abfragen oder oder ...
Denn in Deinem Beispiel 'müsste' der Name leer sein, wenn der Minimalwert in der ersten Zeile ist? Habe es nicht getestet aber so vom Bauchgefühl her.
Gruss
foodaxJa da hast du auch recht hab den Code umgeändert.
String^ name; int min = Convert::ToInt16(listView1->Items[0]->SubItems[1]->Text); int anz= listView1->Items->Count; for(int x=0; x<anz; ++x) { if(Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text) < min) { min = Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text); name = listView1->Items[x]->Text; } if(Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text) == min) { min = Convert::ToInt16(listView1->Items[x]->SubItems[1]->Text); name = listView1->Items[x]->Text; } }
Ich hoffe habe jetzt keine Fehler mehr drin. Und danke mal wieder
.
Wär das nicht auch eigentlich was für die FAQ? Du hast hier alles so schön erklärt mit Beispielen und ich habe so schöne Fragen (:D) gestellt.
-
Shashu schrieb:
Ja da hast du auch recht hab den Code umgeändert.
Ja, so meinte ich das zwar nicht, aber viele Wege führen nach Rom.
Wär das nicht auch eigentlich was für die FAQ? Du hast hier alles so schön erklärt mit Beispielen und ich habe so schöne Fragen (:D) gestellt.
Im Prinzip ist es ja nur ein Durchlaufen eines Arrays, also nichts besonderes.
Ein komplettes Beispiel mit Spaltensortierung auf Doppelklick über die IComparer-Klasse wäre für eine FAQ vielleicht interessant.
Gruss
foodax
-
Ja da hast du recht das könnte noch interessanter sein. Aber sind es nicht oft auch diese Fragen die uns Anfänger quälen?