Entwickler-Ecke
Sonstiges (Delphi) - Probleme mit SaveDialog
DiamondDog - Mi 17.11.10 11:48
Titel: Probleme mit SaveDialog
Hallo Leute,
hab eine kurze Frage zum SaveDialog. Ich habe mir schon die Hilfe von Delphi dazu durchgelesen, aber die konnte meine Frage auch nicht beantworten. Mein Problem ist wenn ich mit dem SaveDialog eine Datei speichern möchte, zb auf dem Desktop und die Datei heißt genau so wie ein Ordner auf dem Desktop. Dann ist das Problem, wenn ich auf speichern klicke, dann wird immer der Ordner mit dem Namen geöffnet und ich kann die Datei nur in dem Ordner oder unter einem andern Namen speichern. Es wäre super wenn mir jemand sagen könnte wie ich ich das beheben kann das nicht der Ordner geöffnet wird, sondern die Datei dann auf dem Desktop gespeichert wird.
Danke schon mal an alle.
Mfg Dog
Edit:
Eintrag wurde von Rechtschreibfehlern usw. verbessert.
Delete - Mi 17.11.10 12:15
Bitte tue uns alle einen Gefallen und lies deinen Beitrag noch mal durch und beseitige mal die gröbsten Rechtschreibfehler. Übrigens außer dem Komma gibt es auch noch den Punkt als Satzzeichen.
Du erwartest ja schließlich Hilfe von uns, da können wir wohl auch erwarten, dass du deinen Beitrag mit etwas mehr Sorgfalt verfasst.
Dude566 - Mi 17.11.10 12:34
Vielleicht würde es helfen, die Dateiendung festzulegen.
DiamondDog - Mi 17.11.10 12:37
Dude566 hat folgendes geschrieben : |
Vielleicht würde es helfen, die Dateiendung festzulegen. |
Du meinst in etwa so:
Delphi-Quelltext
1:
| sl.SaveToFile(SaveDialog1.FileName+'.m3u'); |
Das funktioniert leider auch nicht.
Delete - Mi 17.11.10 12:44
Nein, er meint die Standarddateiendung die automatisch angehangen wird.
Aber habe ich das richtig verstanden, du willst eine Datei speichern, die den gleichen Namen wie der übergeordnete Order hat? Also so: "C:\test\test" wobei letzteres eine Datei ohne Endung ist?
Dude566 - Mi 17.11.10 12:45
Nein, man kann doch auch eine Dateiendung vorgeben bevor ein Name eingegeben wird, habe gerade kein Delphi zur Hand, meine aber es ginge.
Edit: Ja
Luckie, das meinte ich. ;)
DiamondDog - Mi 17.11.10 12:50
Luckie hat folgendes geschrieben : |
Nein, er meint die Standarddateiendung die automatisch angehangen wird.
Aber habe ich das richtig verstanden, du willst eine Datei speichern, die den gleichen Namen wie der übergeordnete Order hat? Also so: "C:\test\test" wobei letzteres eine Datei ohne Endung ist? |
Nein nicht ganz.
Kleines Beispiel, der Pfad existiert:
C:\test\
Die Datei soll jetzt heißen Test.m3u
Wenn ich jetzt auf speichern klicke, wird die Datei nicht auf C:\ erstellt sondern er geht in den Ordner C:\test\ und dort könnte ich die Datei dann speichern.
Delete - Mi 17.11.10 12:51
Mach mal ein Demoprojekt. Das Verhalten kann ich mir nicht vorstellen.
DiamondDog - Mi 17.11.10 12:58
Luckie hat folgendes geschrieben : |
Mach mal ein Demoprojekt. Das Verhalten kann ich mir nicht vorstellen. |
Demo im Anhang.
Martok - Mi 17.11.10 13:04
Das hat wenig mit Delphi zu tun, das ist in Windows einfach so.
Woher soll der OpenDialog auch wissen, ob du jetzt "Ordner öffnen" oder "Speichern und Default-Endung anhängen" meinst, wenn du einen Namen ohne Endung eingibst? Er nimmt also das an, was schon da ist.
Womit
Dude566 Recht hat. Einfach das .m3u im Dialog mit eintippen, fertig.
Delete - Mi 17.11.10 13:07
So sieht ein funktionierendes Beispiel aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button1Click(Sender: TObject); var sl:TStringList; begin sl := TStringList.Create; try sl.Text := 'Test'; SaveDialog1.FileName := 'neu'; if SaveDialog1.Execute then begin sl.SaveToFile(SaveDialog1.FileName+'.m3u'); end; finally sl.Free; end; end; |
In der Tat befremdlich. Wenn die Datei genauso heißt wie ein Ordner in der angezeigten Ordnerliste, kann man die Datei nicht speichern, obwohl eine Endung an den Dateinamen angehangen wird und so die Datei nicht den gleichen Namen bekommt, wie der Ordner.
Delete - Mi 17.11.10 13:10
Martok hat folgendes geschrieben : |
Woher soll der OpenDialog auch wissen, ob du jetzt "Ordner öffnen" oder "Speichern und Default-Endung anhängen" meinst |
Die Schaltfläche ist mit "Speichern" beschriftet. Also sollte man erwarten, dass Windows die Datei speichert und die Default-Endung hängt. Ist keine Default-Endung angegeben und es kommt zu einem Nameskonflikt, sollte einer Fehlermeldung erscheinen.
Martok - Mi 17.11.10 13:13
Luckie hat folgendes geschrieben : |
Die Schaltfläche ist mit "Speichern" beschriftet. Also sollte man erwarten, dass Windows die Datei speichert und die Default-Endung hängt. Ist keine Default-Endung angegeben und es kommt zu einem Nameskonflikt, sollte einer Fehlermeldung erscheinen. |
Die Schaltfläche wird im OnExit des Dateinamensfeldes überprüft und ggf. geändert in "Ordner öffnen". Meistens sieht man das aber nicht, weil man da nicht exited, sondern entweder den Button oder direkt Return drückt. Das war schon immer so seltsam...
EDIT: Sorry. So war es bis einschließlich W2k. Ab XP wird die Beschriftung nicht mehr geändert :shock: Hier hat MS also eindeutig verschlimmbessert.
DiamondDog - Mi 17.11.10 13:14
Super wenn ich die Dateiendung mit anhänge, funktioniert es wie gewüscht. Danke an euch alle für die Super Hilfe.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!