Autor Beitrag
jackie05
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Fr 09.01.09 11:21 
Hallo,
gibt es eine möglichkeit den Pfad von SaveDialog per Button Klick zu setzen?

Ich hab das mal so versucht:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
2:
saveCombo.SaveToFile('save/save01.dat');
saveListe.SaveToFile('save/save02.dat');


Danke schonmal.

MfG


Zuletzt bearbeitet von jackie05 am Fr 09.01.09 11:30, insgesamt 2-mal bearbeitet
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Fr 09.01.09 11:25 
Verwende zum Speichern keinen relativen PFad, sondern einen absoluten, dann kann dir egal sein, wo der SaveDialog steht.

_________________
PROGRAMMER: A device for converting coffee into software.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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. ;-)

_________________
We are, we were and will not be.
jackie05 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 357



BeitragVerfasst: Fr 09.01.09 11:31 
Ich hab das Problem jetzt so behoben:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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 user profile iconGausi 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:):
www.delphi-library.d....php?p=541636#541636
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.01.09 14:45 
bei mir funktioniert der code...

ist dein formular erzeugt?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 09.01.09 14:46 
@user profile iconrd3: Das Problem ist ja schon behoben.

Ich habe nur noch darauf hingewiesen, dass das nicht immer funktionieren wird. ;-)
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.01.09 14:49 
hatte den browser nicht mehr aktualisiert... :?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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. ;-)
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 09.01.09 14:58 
Ha! sieh an, sieh an...