Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - SaveDialog Pfad setzen?
jackie05 - Fr 09.01.09 11:21
Titel: SaveDialog Pfad setzen?
Hallo,
gibt es eine möglichkeit den Pfad von SaveDialog per Button Klick zu setzen?
Ich hab das mal so versucht:
Delphi-Quelltext
1:
| frmDownload.SaveDialog1.InitialDir := ExtractFilePath(Application.ExeName); |
Wenn ich diesen Code ausführe, dann bekomme ich eine Zugriffsverletzung.
Das problem ist, ich Speicher über SaveDialog eine Datei ab und wenn ich mein Programm beende, können die Einstellungen für mein Programm nicht gespeichert werden, da der Pfad durch den SaveDialog geändert wurde, obwohl ich die Einstellungen ohne SaveDialog abspeicher:
Delphi-Quelltext
1: 2:
| saveCombo.SaveToFile('save/save01.dat'); saveListe.SaveToFile('save/save02.dat'); |
Danke schonmal.
MfG
Xentar - Fr 09.01.09 11:25
Verwende zum Speichern keinen relativen PFad, sondern einen absoluten, dann kann dir egal sein, wo der SaveDialog steht.
Gausi - Fr 09.01.09 11:25
Arbeite beim Abspeichern am Ende nicht mit relativen Pfaden, sondern mit dem vollständigen Pfad, den du ggf. mit ExtractFilePath anpasst.
Die Diskussion, dass die Daten eh nicht dahin gehören, sondern ins Anwenderdaten-Verzeichnis, fange ich hier mal nicht an. ;-)
jackie05 - Fr 09.01.09 11:31
Ich hab das Problem jetzt so behoben:
Delphi-Quelltext
1: 2:
| saveCombo.SaveToFile(ExtractFilePath(Application.ExeName)+'save/save01.dat'); saveListe.SaveToFile(ExtractFilePath(Application.ExeName)+'save/save02.dat'); |
Und vielen Dank für die antworten.
MfG
jaenicke - Fr 09.01.09 14:42
Und solltest du das Programm auch veröffentlichen wollen, dann sollte dir klar sein, dass das auf anderen PCs unter XP oft nicht funktionieren wird. Und unter Vista gar nicht mehr. Denn wenn das Programm unter c:\programme liegt, dann hat es im eigenen Verzeichnis keine Schreibrechte.
Das meinte
Gausi auch oben.
Falls du an einer sauberen Lösung interessiert bist, kannst du dir diesen Beitrag anschauen (wenn nicht, dann lass es so, wundere dich dann aber nicht, wenn es bei anderen nicht funktioniert :mrgreen:):
http://www.delphi-library.de/viewtopic.php?p=541636#541636
Delete - Fr 09.01.09 14:45
bei mir funktioniert der code...
ist dein formular erzeugt?
jaenicke - Fr 09.01.09 14:46
@
rd3: Das Problem ist ja schon behoben.
Ich habe nur noch darauf hingewiesen, dass das nicht immer funktionieren wird. ;-)
Delete - Fr 09.01.09 14:49
hatte den browser nicht mehr aktualisiert... :?
jaenicke - Fr 09.01.09 14:51
Aktiviere doch einfach AJAX unter
Meine Ecke » Einstellungen » Erweitert
und dann
Dynamische Seitenänderung (AJAX).
Dann wird dir eine neue Antwort dann nach einigen Sekunden angezeigt, wenn du bereits die Antwort schreibst. ;-)
Delete - Fr 09.01.09 14:58
Ha! sieh an, sieh an...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!