n welcher Variable befindet sich eigentlich der ausgewählte oder benutzte Filename .....
Ich verstehe Deine Frage zwar nicht ganz, versuche aber dennoch zu antworten. :-)
(define path (get-file #f frame))
Falls eine Datei ausgewählt wird, so wird sie in
path gespeichert. Ansonsten landet in
path ein
#f (False).
Übrigens wird alles andere als
#f generell als
#t (True) interpretiert.
Du kannst also schreiben:
Code:
(when path
(speichern path))
(send text-editor save-file #f 'text))]
Hier musst Du natürlich den ermittelten Dateinamen mit angeben:
(send text-editor save-file path 'text)
Wenn man das alles zusammenfügt, erhält man:
Code:
(define path (get-file #f frame))
(when path
(send text-editor save-file path 'text))
Nun will man natürlich nicht bei jedem Mal speichern nach dem Dateinamen fragen müssen. Nach dem ersten Mal ist er ja auch eigentlich bekannt.
Du könntest ihn dann in einer Variablen speichern die Du mit
#f initialisierst.
Ist sie beim Speicherversuch
#f dann rufst Du halt den get-file-Dialog auf. Ansonsten kannst Du halt direkt speichern.
Ich hoffe, unter dem ganzen Geschreibsel war jetzt die Antwort auf Deine Frage dabei. :-)
Das mit dem Klammerpaar habe ich korrigiert, das stimmt.Das seltsame ist, das er das nicht angemeckert hat und es trotzdem läuft.
Syntaktisch ist das ja auch alles korrekt. Allenfalls zur Laufzeit fällt es auf.
Leider sind die yes/no Buttons in englisch, läßt sich das auch beheben, denn es wäre schöner, wenn die mit Ja/Nein beschriftet wären?
Ich weiß jetzt aus dem Stand gar nicht, ob
message-box eine Möglichkeit der Lokalisierung vorsieht. Was natürlich immer geht ist
message-box/custom zu verwenden.
Code:
(when (= (message-box/custom "DokuMaker beenden" "Möchten Sie wirklich beenden?" "Ja" "Nein" #f)
1)
(send frame show #f))