Seite 1 von 2

OpenFileRequester

Verfasst: 22.12.2006 14:23
von sen-me
Ich glaube jetzt nicht das es ein Bug ist, aber ich würde es besser finden wenn man eine Abfrage einbauen würde, die schaut ob die ausgewählte Datei auch die selbe Extension hat wie vorgegeben.
Z.B.

Code: Alles auswählen

OpenFileRequester("Bli wählen...", file, "Bli (*.bli)|*.bli", 0)
Würde ich jetzt in einen Ordner gehen wo auch eine bla.blub vorhanden ist und unten in die Textbox bla.blub eingeben würde, dann aktzeptiert er das, obwohl nur *.bli gesucht sind.

So muss man immer selber abfragen ob es erlaubt ist...
Hab mir zwar ne eigene Procedure geschrieben die das OpenFileRequester ersetzt (also ne Procedure die aber die ausgewählte Datei über ihre Richtigkeit prüft), aber es wäre echt nützlich, vor allem im Bughandling von Programmen ^^

Verfasst: 22.12.2006 14:26
von NicTheQuick
Des Rätsels Lösung ist SelectedFilePattern() oder GetFileExtension()

Verfasst: 22.12.2006 14:28
von a14xerus
soweit ich weiß , ist es kein bug, da erstens der requester von windows kommt, und zweitens er zwar nur die dateien mit der endung anzeigt, aber die anderen existiern trotzdem noch :wink:
beim speichern musst du ja auch selber gucken, ob die endung überhaupt an den namen angehängt wurde

Verfasst: 22.12.2006 15:19
von AND51
Stimmt, man muss selber aufpassen.
Ich verarsche manche Programme ja auch, indem ich z. B. ein Bild wähle, das nicht mit den vorgegebenen Pattern übereinstimmt. :mrgreen: Trotzdem schaffen sie es irgendwie, die Datei immer richtig zu öffnen.

Übrigens: In deinem BLI-Requester kann man problemlos alle anderen Dateien auch öffnen, auch, wenn du als Pattern nur *.bli vorgibst. Bei Dateinamen einfach einen *Stern* eingeben und EIngabe drücken, dann werden alle Dateien angezeigt und ich kann auch nicht-BLI-Dateien auswählen.

Verfasst: 22.12.2006 16:31
von Kaeru Gaman
yo das ist völlig normal und auch vollkommen logisch.

du kannst z.b. in Paint ein JPG öffnen, wenn das anzeigepattern auf BMP steht.

ich persönlich fände es komplett sinnwidrig, wenn das irgendwie beschränkt würde.

das pattern dient nur dazu, dein in diesem mini-fenster angezeigte verzeichnis übersichtlicher zu gestalten.

Verfasst: 22.12.2006 16:59
von sen-me
Wenn es aber um eigene Extensionen geht und falls der Benutzer ein anderes lädt kann es passieren, das ohne Abfrage diese Datei beschädigt wird...

Verfasst: 22.12.2006 17:06
von NicTheQuick
Deswegen solltest du, wenn du ein eigenes Dateiformat hast, am Anfang der
Datei einen Header einbauen, an dem du dein Dateiformat erkennen kannst,
auch wenn die Dateierweiterung nicht stimmt.

Verfasst: 22.12.2006 17:29
von Kaeru Gaman
sen-me hat geschrieben:Wenn es aber um eigene Extensionen geht und falls der Benutzer ein anderes lädt kann es passieren, das ohne Abfrage diese Datei beschädigt wird...
deswegen solltest du rückgaben von User immer ganz ganz ganz genau prüfen.

Verfasst: 22.12.2006 18:15
von AND51
Kann ich auch mal eine Frage zum OpenFilerequester() stellen?

Wie maaachen manche Programme das, das eine zusätzliche CheckBoxGadget da reinkommt, die lautet immer "Schreibgeschützt öffnen".

Geht das, wenn ja wie?

Verfasst: 22.12.2006 18:41
von ts-soft
>> Geht das, wenn ja wie?
Mit der GetOpenFileName-API, solltest Du eigentlich selber finden können.