Datei-öffnen-Dialog unter WIN7



  • Hallo,
    ich habe in meinem Programm zur Angabe einer Excel-Datei den Datei-Öffnen-Dialog verwendet. Unter WIN-XP geht alles. Ich kann eine Datei auswählen. Nur unter WIN-7 nicht! Da möchte der Datei-Öffnen-Dialog ein Verzeichnis angeben!

    Kann mir da jemand helfen???

    Danke und Gruß
    Torsten



  • Hallo,
    kannst du das Problem noch etwas genauer spezifizieren und den Sourcecode zeigen, vielleicht kann man da was erkennen.



  • Ich verwenden folgenden Code, um die Dialog-Komponente anzusprechen:

    //Arbeitsvorrat aus Excel lesen
    OpenDialog1->Execute();
    DateiPfad = OpenDialog1->FileName;
    //OpenDlg->Execute();
    //DateiPfad = OpenDlg->FileName;
    

    Wobei die ausdokumentierten Zeilen sich auf die Komponenten TLMDFileOpenDialog (OpenDlg) und die andere auf TOpenDialog (OpenDialog1) beziehen. Habe die zweite Variante zum Testen genutzt.
    Wenn ich diesen Datei-Öffnen-Dialog aufrufe, wird in WIN7 die Angabe eines Verzeichnisses verlangt. Ich kann dort gar keine Datei auswählen! Unter WIN XP hat das alles noch funktioniert. Kann es sein, dass es eine Einstellung unter WIN7 ist??? 😕

    Gruß
    Torsten



  • torsten_156 schrieb:

    Wenn ich diesen Datei-Öffnen-Dialog aufrufe, wird in WIN7 die Angabe eines Verzeichnisses verlangt. Ich kann dort gar keine Datei auswählen!

    Was heißt das konkret? Werden gar keine Dateien angezeigt? Was passiert, wenn du einen Datei auswählst? Was passiert, wenn du manuell den Namen einer Datei eingibst?



  • torsten_156 schrieb:

    Wenn ich diesen Datei-Öffnen-Dialog aufrufe, wird in WIN7 die Angabe eines Verzeichnisses verlangt.

    Wie muss man sich das konkret vorstellen? Kann man das Verzeichnis irgendwo eingeben oder erscheint eine Fehlermeldung?

    Wie ist die Vorgeschichte vor Execute()?
    Wie wird OpenDialog1 initialisiert?

    OpenDialog1->InitialDir = ????
    OpenDialog1->Options = ????
    OpenDialog1->Execute();
    DateiPfad = OpenDialog1->FileName;
    


  • j.halder schrieb:

    Wie muss man sich das konkret vorstellen

    Es öffnet sich ein Dialog, in dem man ein Verzeichnis angeben muss. Es werden auch nur Verzeichnisse angezeigt, keine Dateien! Die Angabe eines Dateinamens ist theoretisch möglich, aber den soll man ja auswählen können. Wie gesagt, ist vergleichbar mit einem Datei-öffnen Dialog. Im Kopf des Dialoges steht auch "Verzeichnis öffnen".

    Die Initialisierung mache ich direkt in der Komponente. Da gibt es nur einen Filter auf .xls
    Das Execute steht in der zweiten Zeile in der Funktion (meine ich). Bin leider nicht am PC.

    Gruß
    Torsten



  • torsten_156 schrieb:

    Es öffnet sich ein Dialog, in dem man ein Verzeichnis angeben muss. Es werden auch nur Verzeichnisse angezeigt, keine Dateien! Die Angabe eines Dateinamens ist theoretisch möglich, aber den soll man ja auswählen können. Wie gesagt, ist vergleichbar mit einem Datei-öffnen Dialog. Im Kopf des Dialoges steht auch "Verzeichnis öffnen".

    Ich kann das nicht nachvollziehen, bei mir funktioniert das korrekt.
    Welchen C++Builder verwendest du? Ich verwende C++Builder XE2.
    Hast du das nur auf einem Win7-PC getestet oder auf mehreren?
    Wie schaut der Open-Dialog bei anderen Programmen auf diesem PC aus?
    Starte WordPad und versuch mal da eine Datei zu öffnen.



  • Wie sieht denn das DFM der Dateiauswahlbox aus?



  • Hallo zusammen,

    nachdem ich die Initialisierung aus der Komponente entfernt habe und diese per Code mache, klappt es wieder. Hier der Code dazu:

    //Arbeitsvorrat aus Excel lesen
    OpenDlg->FileTypes->Clear();
    OpenDlg->FileTypes->Add();
    OpenDlg->FileTypes->Items[0]->DisplayName = "*.xls";
    OpenDlg->FileTypes->Items[0]->FileMask = "*.xls";
    OpenDlg->Execute();
    DateiPfad = OpenDlg->FileName;
    

    Komisch finde ich nur, dass es da wohl einen Unterschied der Verarbeitung/Anzeige zwischen WinXP und Win7 gibt 😕

    Aber jetzt klappt es ja...

    Vielen Dank für die Hilfe 👍
    Gruß Torsten


Anmelden zum Antworten