| Autor |
Beitrag |
jackie05
      
Beiträge: 357
|
Verfasst: 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:
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
Zuletzt bearbeitet von jackie05 am Fr 09.01.09 11:30, insgesamt 2-mal bearbeitet
|
|
Xentar
      
Beiträge: 2077
Erhaltene Danke: 2
Win XP
Delphi 5 Ent., Delphi 2007 Prof
|
Verfasst: 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
      
Beiträge: 8554
Erhaltene Danke: 481
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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 
      
Beiträge: 357
|
Verfasst: 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
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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  ):
www.delphi-library.d....php?p=541636#541636
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 09.01.09 14:45
bei mir funktioniert der code...
ist dein formular erzeugt?
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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. 
|
|
rd3
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 09.01.09 14:49
hatte den browser nicht mehr aktualisiert... 
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: 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
|
Verfasst: Fr 09.01.09 14:58
|
|