Giorgos3924 Δημοσ. 14 Νοεμβρίου 2010 Δημοσ. 14 Νοεμβρίου 2010 Πώς μπορώ να ανοίγω κάποια αρχεία που θα επιλέγω μέσα από τη φόρμα; Δηλαδή, θέλω να εμφανίζονται αρχεία συγκεκριμένου τύπου στη φόρμα (από κάποιο συγκεκριμένο προορισμό) και επιλέγοντάς τα να εμφανίζονται. Πώς μπορώ να ανοίξω έναν προορισμό και από αυτόν να φαίνεται μόνο ένας τύπος αρχείων στη φόρμα;
MitsakosGR Δημοσ. 14 Νοεμβρίου 2010 Δημοσ. 14 Νοεμβρίου 2010 Σε τι περιβάλλον και τι γλώσσα προγραμματισμού; Αν το κάνεις μέσα από το Visual Studio (για οποιαδήποτε .ΝΕΤ γλώσσα) χρησιμοποιώντας το "Open File Dialogue Box" component μπορείς να αλλάξεις την ιδιότητα "Filter". Αναλυτικά το έχει εδώ
Giorgos3924 Δημοσ. 14 Νοεμβρίου 2010 Μέλος Δημοσ. 14 Νοεμβρίου 2010 Βρήκα κάποια παραδείγματα. Χρησιμοποιούν τη listview. Δεν έχω καταλάβει όμως πως θα προσθέσω κάποιο path στη listview ώστε να εμφανίζει τα αρχεία που έχει το συγκεκριμένο path. Μετά θα βάλω φιλτράρισμα για να εμφανίζει συγκεκριμένου τύπου αρχεία. Χρησιμοποιώ Visual C++ (CLR). Δεν θέλω να ανοίξω παράθυρο. Θέλω τα αρχεία να εμφανίζονται στη listview από συγκεκριμένο path. Όπως αυτό: http://ondotnet.com/pub/a/dotnet/2002/10/28/listview.html?page=2
taazz Δημοσ. 14 Νοεμβρίου 2010 Δημοσ. 14 Νοεμβρίου 2010 Χρησιμοποιείς την κλάση CFileSearch (το όνομα δεν είναι σύγουρο) που μπορείς να χρησιμοποιήσεις για να βρείς τα αρχεία που σε ενδιαφέρουν και μετά τα προσθέτεις στην listview. Γράφεις κώδικα για το event του Mouse click του listview από όπου και παίρνεις το όνομα του αρχείου που έχει επιλεγεί προς επεξεργασία. Ξέρω γενικότητα, λυπάμε αλλα δεν γράφω C++ περισσότερες τεχνικές λεπτομερίες από τους ανθρώπους που την χρησιμοποιούν καθημερινά.
Giorgos3924 Δημοσ. 14 Νοεμβρίου 2010 Μέλος Δημοσ. 14 Νοεμβρίου 2010 Δεν θέλω να επιλέξω εγώ τα στοιχεία. Θέλω να βάλω ένα προορισμό κάπου από τον δίσκο και ότι έχει εκείνος ο φάκελος που θα επιλέξω να τα εμφανίσει στην listview. Μετά με φιλτράρισμα θα εμφανίζει μόνο τα αρχεία συγκεκριμένου τύπου. Μέσα από τη listview θέλω να βλέπω έναν φάκελο που θα επιλέξω εγώ. Πχ. άν στον φάκελο που έχουμε επιλέξει υπάρχουν 3 εικόνες, θέλω στη listvliew να εμφανίζονται ως λίστα αυτές οι 3 εικόνες. Και επιλέγοντάς κάποια θα εκτελείται κάποια εντολή, άνοιγμα, κλείσιμο ή διαγραφή ή κάτι άλλο.
Giorgos3924 Δημοσ. 14 Νοεμβρίου 2010 Μέλος Δημοσ. 14 Νοεμβρίου 2010 Εισαι εδω Ναι το είδα, στη listview όμως πώς θα εμφανιστούν; με το Items->Add ?
taazz Δημοσ. 14 Νοεμβρίου 2010 Δημοσ. 14 Νοεμβρίου 2010 Δεν θέλω να επιλέξω εγώ τα στοιχεία.Θέλω να βάλω ένα προορισμό κάπου από τον δίσκο και ότι έχει εκείνος ο φάκελος που θα επιλέξω να τα εμφανίσει στην listview. ΛΟΛ. Tότε σταμάτα να χρησιμοποιείες listview και ψάξε για κανένα αντικείμενο shellView πχ http://www.exontrol.com/exshellview.jsp ή το Interface IShellView
Giorgos3924 Δημοσ. 14 Νοεμβρίου 2010 Μέλος Δημοσ. 14 Νοεμβρίου 2010 Και αυτό το παράδειγμα με listview είναι http://ondotnet.com/pub/a/dotnet/2002/10/28/listview.html?page=2 Αυτό εδώ θέλω να κάνω, χωρίς τα size, type, modified. Δε θέλω τόσες λεπτομέρειες. Μόνο το όνομα και την εικόνα θέλω να εμφανίσω. ---------- Προσθήκη στις 20:37 ---------- Προηγούμενο μήνυμα στις 19:35 ---------- Με την GetFiles() μου εμφανίζει τα αρχεία μαζί με το path >array<String^>^fileEntries = Directory::GetFiles("C:\\Users\\Giorgos\\Desktop\\fakelos"); for (int x=0; x<=5; x++) { listView1->Items->Add(fileEntries[x]); } Εγώ θέλω μόνο το όνομα του αρχείου μαζί με την εικόνα. Επίσης πώς μπορώ να ξέρω τα στοιχεία του πίνακα;
Evgenios1 Δημοσ. 15 Νοεμβρίου 2010 Δημοσ. 15 Νοεμβρίου 2010 Ελεος... Πως μπορεις να γραφεις CLR σε c++; Τεσπα δες εδω πως μπορεις να το κανεις. το lv ειναι η listview το btnLoad ειναι το Load button >private : ImageList ^ims, ^iml; private: System::Void btnLoad_Click(System::Object^ sender, System::EventArgs^ e) { // ims = gcnew ImageList(); iml = gcnew ImageList(); ims->ImageSize = System::Drawing::Size(16,16); ims->ColorDepth = ColorDepth::Depth32Bit; iml->ImageSize = System::Drawing::Size(32,32); iml->ColorDepth = ColorDepth::Depth32Bit; array<String^> ^files = System::IO::Directory::GetFiles("E:\\Users\\papi\\Downloads"); int idx = 0; for each(String^ item in files) { System::Drawing::Icon ^thum1 = System::Drawing::Icon::ExtractAssociatedIcon(item); System::Drawing::Icon ^thum2 = System::Drawing::Icon::ExtractAssociatedIcon(item); ims->Images->Add(thum1); iml->Images->Add(thum2); lv->SmallImageList = ims; lv->LargeImageList = iml; lv->Items->Add(System::IO::Path::GetFileNameWithoutExtension(item),idx++); } } Και εδω το αποτελεσμα Επισης. στη ListView υπαρχει ενα property το οποιο σου δινει την δυνατοτητα να αλλαξεις το τροπο προβολης. Αυτο ειναι το ListView::View που παιρνει αυτα εδω.
Giorgos3924 Δημοσ. 15 Νοεμβρίου 2010 Μέλος Δημοσ. 15 Νοεμβρίου 2010 Ευχαριστώ αυτό ακριβώς ήθελα να κάνω! Πού είναι το παράξενο όμως που γράφω σε C++; Όλα αυτά που εισάγουμε στη listview το πρόγραμμα τα χειρίζεται ώς items;
Evgenios1 Δημοσ. 15 Νοεμβρίου 2010 Δημοσ. 15 Νοεμβρίου 2010 Ευχαριστώ αυτό ακριβώς ήθελα να κάνω!Πού είναι το παράξενο όμως που γράφω σε C++; Όλα αυτά που εισάγουμε στη listview το πρόγραμμα τα χειρίζεται ώς items; Οταν λες "items"; Κοιτα να δεις, η property ListView::Items ειναι μια inner class η οποια εχει 3 interface IList, ICollection, IEnumerable . Ουσιαστικα ειναι μια λιστα. Αν δε κανω λαθος η απορια σου ειναι, αν μπορεις να χρησιμοποιησεις αυτα τα δεδομενα αποφευγοντας μια δευτερη λιστα. Αν ειναι αυτο, καλυτερα να μη το κανεις.
Giorgos3924 Δημοσ. 16 Νοεμβρίου 2010 Μέλος Δημοσ. 16 Νοεμβρίου 2010 Η απορία μου είναι πως μπορώ να διαχειριστώ τη λίστα. Δηλαδή από τη στιγμή που τα πρόσθεσα εγώ θέλω να έχω ένα φίλτρο για να μην εμφανίζει όλα τα αρχεία μέσα. Και μετά επιλέγοντας κάποιο να ανοίγει ή να εκτελείται κάποια άλλη ενέργεια όπως copy paste ή delete.
Evgenios1 Δημοσ. 16 Νοεμβρίου 2010 Δημοσ. 16 Νοεμβρίου 2010 Δουλεψε το. Εχεις Regex και linq που θα σε βοηθησουν παρα πολυ.
Giorgos3924 Δημοσ. 16 Νοεμβρίου 2010 Μέλος Δημοσ. 16 Νοεμβρίου 2010 Θα το ψάξω. Είναι λίγο δύσκολο... Με την πρώτη ματιά φαίνεται ότι έχει μεγάλη διαφορά με την C++ σε κονσολα. Τον κώδικα που εμφανίζει τα στοιχεία στη listview τον έχω βάλει σε ένα κουμπί. Θέλω βασικά ο προορισμός να ακολουθεί το αρχείο exe. Δηλαδή αν βάλω το exe σε άλλο φάκελο να αλλάξει και το path. Επειδή εκεί μέσα θα δημιουργώ κάποιους φακέλους και η λίστα θα εμφανίζει τα στοιχεία του κάθε φακέλου με ένα comboBox Πχ ο standar path θα είναι C:\\project και μετά όταν δημιουργηθεί ένας φάκελος και τον επιλέξω με το comboBox να διαλέγει το path C:\\project\\neos_fakelos Υπάρχει κάποια εντολή που κάνει το path να ακολουθεί το αρχείο exe ή θα πρέπει να κάνω κάποια εργασία ώστε να το ορίζω εγώ αν θελήσω να το αλλάξω; Γιατί αν μεταφέρω το exe σε άλλο υπολογιστή δεν θα ισχύει το path.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.