adam310 Geschrieben 9. März 2011 Geschrieben 9. März 2011 Hallo Leute. Langsam verzweifle ich hier. Will mehrere Daten die ich in einem Öffnen-Dialog ausgewählt habe in umgekehrter Reihenfolge in mein erstelltes array kopieren. Habe folgenden Code: private: System::Void openFileDialog2_FileOk(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) { //ein neues Array für String anlegen und die markierten //Namen kopieren array <String^> ^dateien = openFileDialog2->FileNames->Reverse(); <<<<-------- Problem???? //wenn sich noch Einträge in der Liste befinden, //löschen wir sie if (listBox1->Items->Count != 0) listBox1->Items->Clear(); //die Namen in das Listenfeld kopieren for each (String ^datei in dateien) listBox1->Items->Add(datei); Das funktioniert aber irgendwie nicht. Kann mir jemand bitte helfen oder einen Tip geben. Wäre äußerst dankbar. Grüße Zitieren
Klotzkopp Geschrieben 9. März 2011 Geschrieben 9. März 2011 Das funktioniert aber irgendwie nicht. <Gebetsmühle> "Funktioniert nicht" ist keine ausreichende Fehlerbeschreibung. </Gebetsmühle> Wenn du eine Fehlermeldung bekommst, dann sag sie uns auch. Wenn nicht, beschreibe das erwartete und das beobachtete Verhalten. Zitieren
adam310 Geschrieben 9. März 2011 Autor Geschrieben 9. März 2011 Hallo Klotzkopp:) So trifft man sich wieder. Ich möchte die Auswahl der Bildern für meine Bilderschau so ändern, dass sie im Listenfeld im Wesentlichen in der Reihenfolge angezeigt werden, in der ich sie auch ausgewählt habe. Ohne (glaube ich) die Reverse Funktion werden sie im Listenfeld aber in umgekehrter Reihenfolge angezeigt. Ich habe nur einen Hinweis. Und zwar dass die Reihenfolge der Dateien bei der Auswahl nicht immer eindeutig ist. Ich will vor allem sicherstellen, dass die Liste mit den ausgewählten Dateien im Feld Dateiname: des Öffnen-Dialogs jetzt nicht mehr von vorne nach hinten verarbeitet wird sondern von hinten nach vorne. Habe jetzt entsprechend den Code geändert, kriege zwar keine Fehlermeldung weiß aber nicht ob die Reihenfolge auch tatsächlich geändert wird. Sie ist irgendwie immer noch durcheinander. Hier mein Code: private: System::Void openFileDialog2_FileOk(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) { //ein neues Array für String anlegen und die markierten //Namen kopieren array <String^> ^dateien = openFileDialog2->FileNames; array <String^>::Reverse(dateien); //wenn sich noch Einträge in der Liste befinden, //löschen wir sie if (listBox1->Items->Count != 0) listBox1->Items->Clear(); //die Namen in das Listenfeld kopieren for each (String ^datei in dateien) listBox1->Items->Add(datei); Zitieren
Klotzkopp Geschrieben 9. März 2011 Geschrieben 9. März 2011 Ich möchte die Auswahl der Bildern für meine Bilderschau so ändern, dass sie im Listenfeld im Wesentlichen in der Reihenfolge angezeigt werden, in der ich sie auch ausgewählt habe.Willst du die Dateien in der Reihenfolge, in der du sie für die Auswahl markiert hast, oder in der sie angezeigt werden, nachdem du mit Auswählen fertig bist? Zitieren
adam310 Geschrieben 9. März 2011 Autor Geschrieben 9. März 2011 Hallo Klotzkopp Ich will dass sie in dem Listenfeld in der Reihenfolge angezeigt werden. in der ich sie ausgewählt habe.... Vielen Dank Zitieren
Codemancer Geschrieben 10. März 2011 Geschrieben 10. März 2011 Ohne (glaube ich) die Reverse Funktion werden sie im Listenfeld aber in umgekehrter Reihenfolge angezeigt. Das ist so nicht richtig. Ich habe gerade mal ein bisschen herumprobiert um zu verstehen, was du meinst. Dabei ist mir aufgefallen, dass die markierten Dateien grundsätzlich in der richtigen Reihenfolge in die Textbox (und letztendlich dem FileNames-Array) landen, jedoch immer die zuletzt markierte Datei als erstes Element angezeigt wird. Dies hat vermutlich den Grund, dass der Anwender bei einem MultiSelect immer sofort sieht, welche Datei er zuletzt markiert hat. Leider wurde dieses Feature nicht zu Ende gedacht, sodass man das erste Array-Element "per Hand" ans Ende stellen muss. Ich habe nur einen Hinweis. Und zwar dass die Reihenfolge der Dateien bei der Auswahl nicht immer eindeutig ist. Eindeutig ist sie schon, sie unterliegt halt ungewohnten, logischen Regeln. Mir ist das auch erst klar geworden als ich mir ganz blöd 6 nummerierte Dateien erstellt habe und diese eine nach der anderen ausgewählt habe. Zitieren
Klotzkopp Geschrieben 10. März 2011 Geschrieben 10. März 2011 Eindeutig ist sie schon, sie unterliegt halt ungewohnten, logischen Regeln.Solange dieses Verhalten nicht irgendwo klar dokumentiert ist, wäre ich da eher vorsichtig. Das beobachtete Verhalten eines einzelnen Systems zu einem bestimmten Zeitpunkt auf alle Systeme und auf die Zukunft zu verallgemeinern, kann in die Hose gehen. Man muss damit rechnen, dass es auf Rechner X oder nach der Installation von Update Y nicht mehr wie gewohnt funktioniert. Zitieren
Codemancer Geschrieben 10. März 2011 Geschrieben 10. März 2011 Naja aus diesem Grund benutzen wir mit .NET ja ein Framework. Ich denke in diesem Fall ist das Verhalten schon eindeutig. Das ist ja der Sinn von Standards Im Endeffekt muss sowas eh getestet werden. Du kannst im Prinzip nur mit den Systemen testen und entwickeln, die du auch tatsächlich vorhanden hast. Alles andere wird sich halt leider als Fehler zurückmelden. Aber ich mag an dieser Stelle nicht über solche Grundsätze diskutieren. Selbst wenn dieses "System" nicht beim TE zutrifft, so hat er wenigstens schon mal einen Ansatzpunkt, um das Problem vielleicht selbst zu lösen. Allemal besser als gar nicht antworten ;P Zitieren
adam310 Geschrieben 10. März 2011 Autor Geschrieben 10. März 2011 Ich danke Euch. Ich habe es jetzt doch mit der Reverse() Funktion lösen können. Die Einträge (Auswahl meiner Bilder) die in Dateiname: standen hatte mittels dieser Funktion auch richtig, von hinten nach vorne in mein Array gelegt. Und es funzt.. So far so good.... Danke Euch Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.