NUR das Verzeichnis auswählen?



  • @ -]-
    OK, wenn du dir die Mühe machen willst, das alles zu coden... bitteschön. Mit meiner Kompo wärst du aber auf jeden Fall besser dran - ist viel einfacher.

    Anleitung zur Installation:
    - Komponente->Komponente installieren->In neues Package
    - Unit auswählen: TOpenFolderDialog.cpp
    - Bei "Package" Durchsuchen klicken und in die Edit-Zeile des folgenden OpenDialogs den gewünschten Namen (z.B. "ofdPack")eingeben im gleichen Verzeichnis wie die cpp-Datei
    - OK klicken
    - OK klicken
    - [Kompilation]
    - Projekt->"ofdPack erstellen" auswählen
    - [Kompilation]
    - Datei->"Alle schließen" wählen
    - Immer OK klicken



  • @Jansen
    Ich habe mir nicht die Mühe gemacht, diese Kompo zu schreiben (war garnicht so einfach für mich), damit du hier auf die FAQ verweist. Ich habe sie geschrieben, damit alle sie benutzen können. Warum sollte man alles nochmal coden, wenns schon in ner Klasse fertig zu haben ist?
    Und das, was in der FAQ steht, beinhaltet die minimale Funktionalität dieses Dialogs. Man kann z.B. noch auf OnChange reagieren und vieles mehr. Das alles ist in der FAQ nicht dokumentiert, ist mit meiner Kompo aber leicht zu machen.



  • Danke, beide Wege funktionieren tadellos.
    Vielen Dank für die Antworten!



  • Original erstellt von WebFritzi:
    Ich habe sie geschrieben, damit alle sie benutzen können.

    Aber nicht müssen, oder? Deshalb ist der Hinweis auf die (ab BCB5) vergleichsweise einfache Variante mit SelectDirectory wohl legitim.



  • Jo Jansen, das mit SelectDirectory ist ja auch OK. Aber in der FAQ ist noch ein Link zu BCBDEV, und da steht doch meines Wissens eine kleine Anleitung zu SHOpenFolder (oder wie auch immer die Funktion noch heißt). Ich dachte, -J- hätte das genommen, und da ist die Verwendung einer Klasse ja wohl einfacher und besser.

    P.S.: Wir waren uns doch einig, dass SelectDirectory scheiße aussieht, oder? 😉



  • Ich bin noch hin- und hergerissen, welche Lösung ich nehme, im Grunde erfüllt SelectDirectory meine Anforderungen aber die Klasse von Webfritzi kann schon einiges 🙂 wenn man sie mal installiert ha *g*



  • Es steht dir frei. Ich finde SelectDirectory() nur ziemlich hässlich. Und zudem ist TOpenFolderDialog der Standard-Windows-Dialog für diese Aufgabe.



  • Original erstellt von WebFritzi:
    Wir waren uns doch einig, dass SelectDirectory scheiße aussieht, oder?

    Nicht im BCB5 und höher (wie auch schon gesagt). Dort ist SelectDirectory offensichtlich eine Wrapper-Funktion für SHBrowseForFolder.



  • Achso. Man lernt, man lernt... 😉



  • Hallo WebFritzi,

    hab gerade versuch deine OpenFolder-Komponente zu installieren. Ich habe hier den BCB6.0 Professional und bin genau deiner Installationsanleitung gefolgt. Nur bringt das Kompilieren folgende Meldungen:

    -------------------------------
    [C++ Fehler] shobjidl.h(2193): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
    [C++ Fehler] shobjidl.h(8095): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
    [C++ Fehler] shlobj.h(1422): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
    [C++ Fehler] shlobj.h(3457): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariert
    [C++ Fehler] OpenFolderDialog.h(14): E2015 Mehrdeutigkeit zwischen 'TBrowseInfo' und 'Shlobj::TBrowseInfo'
    [Linker Fataler Fehler] Fatal: Unable to open file 'OPENFOLDERDIALOG.OBJ'
    -------------------------------

    Was hat es denn mit dieser Datei "shobj..." auf sich?

    Gruß,
    Mipe



  • Im BCB 6 sind beide Versionen von SelectDirectory enthalten:

    bool __fastcall SelectDirectory(const AnsiString Caption, const WideString Root, AnsiString &Directory); //Neuer Windowsdialog
    
    bool __fastcall SelectDirectory(AnsiString &Directory, TSelectDirOpts Options, int HelpCtx); //Alter Borlanddialog
    

Anmelden zum Antworten