get_open_filename default directory

  • GM 7
  • get_open_filename default directory

    Hallo!
    Ich hab da mal eine frage...
    Kann man die standart director von get_open_filename ändern so dass zb wenn man etwas öffnet und danach nochmal auf öffnen geht es wieder an der gleichen stelle öffnet bei der man vorher etwas ausgewählt hat.
    also wenn ich bei c/windows eine datei auswähle und wieder auf öffnen klicke, er wieder auf c/windows springt..
    Ich weiß dass es mit der working directory zu tun hat, aber kann man die nicht irgendwie selber ändern?
    mfg gamer_08
  • du könntest die Extension Windows Dialogs nehmen(ist Standard). Da kannst du den Ordner w#hlen.

    GML-Quellcode

    1. wd_open_dialog_set_folder(folder)
    2. wd_open_dialog_show()

    Allerdings habe ich komischerweise mal feststellen müssen, dass dadurch die working_directory Variable geändert wird( allein durch wd_open_dialog_show), obwohl diese doch schreibgeschützt ist?
  • Ich hoffe du wirst dieses kleine beispiel auch ohne Erklärung verstehen - bin noch zu müde für lange Texte.
    "Dir" enthält die letzt ausgewählte Datei.

    GML-Quellcode

    1. dir = environment_get_variable('USERPROFILE')+'\name_der_datei';
    2. repeat (3) { dir = get_open_filename('',dir); }


    Mfg SDX
  • So, jetzt bin ich auf jeden fall frisch

    Also, als erstes wird die variable dir gesetzt. Das kann so ziehmlich alles sein. Ich habe mich dazu entschlossen, den pfad vom Userprofiel zu nehmen.
    Bei mir wäre das C:\Users\SDX. Danach füge ich dem string noch ein "\name_der_datei" an. Das ist ganz einfach der name der datei, die beim ersten auftauchen des dialoges angezeigt werden soll.
    Nach der ersten Zeile haben wir jetzt dir = "C:\Users\SDX\irgendeinedatei.dat"
    wenn du es ganz professionell machen willst, speicherst du den pfad der zuletzt gespeicherten datei in der regestry, und nutzt die anstatt der lösung die wir jetzt gemacht haben.

    Für den 2ten teil muss man mal eben erklären, was das 2. argument von get_open_filename() macht. Da hat man halt die möglichkeit zu bestimmen, zu welchem pfad geschprungen werden soll, wenn der dialog sich öffnet. Wenn du dort einfach mal 'C:\irgendeinedatei' angibts, bekommst du diesen dialog:

    (ahrg, verdamtes gif, nvmd)

    Wie du siehst: oben steht als pfad C: und unten als dateiname "irgendeinedatei". Gibt sinn, oder?

    get_open_filename gibt - wie get_save_filename - den letzendlich ausgewählten pfad wieder. Den können wir dann für die sachen benutzen, die wir damit anstellen wollen. Diesen pfad merken wir uns jetzt, in der variable dir. Bei nächsten mal (in meinem example durch eine schleife simuliert) geben wir den pfad der das letzte mal genommen wurde und in dir "gespeichert" wurde, als argument #2 der funktion get_open_filename - dem pfad zu dem amanfang gegangen werden soll.


    So, viel text um etwas einentlich simples

    MfG SDX
  • Benutzer online 1

    1 Besucher