Autor Beitrag
Knappe Franz
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 15.03.08 13:26 
Hey Leute,

ich habe ein Spiel programmiert in dem man zum einen eigene Spielkarten und zum anderen Spielstände speichern kann. Das Problem ist, dass beide Dateiarten .dat-Dateien sind. Um also während des Spiels eine Unterscheidung zwischen Spiel- und Karten-Datei treffen zu können wollte ich 2 Verschiedene Ordner anlegen - einen für Karten den anderen für Spieldaten. Um dann beim Speichern/Laden der jeweiligen Dateien im richtigen Ordner zu suchen hab ich die entsprechenden FileListBoxes mit den richten Verzeichnis über

FileListBox1.Directory:='\Karten\';
FileListBox2.Directory:='\Spiele\';

belegt. Jetzt ist das Problem aufgetreten, dass er scheinbar nicht ausschließlich das Verzeichnis für die FileListBox geändert hat, sondern für die gesamte Routine, sodass es beim Starten dazu kam, dass er bestimmte Dateien aus dem Hauptverzeichnis nicht mehr finden konnte.

Jetzt meine Frage: Wie kann ich die Verzeichnisänderung auf die Filelistbox beschränken? Geht das gar nicht? Gibt es eine andere Möglichkeit Dateien eines bestimmten Ordners anzeigen zu lassen? Danke für eure Hilfe!

Knappe Franz
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: Sa 15.03.08 13:56 
Ersetze einfach die relativen Dateinamen in den Lade- und Speicherroutinen durch komplette Dateinamen. Das sollte man sowieso immer machen. Das Verzeichnis der Anwendung (was man dann in der Regel braucht) bekommt man mit ExtractFilePath(ParamStr(0)); heraus.

_________________
We are, we were and will not be.
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 15.03.08 15:35 
user profile iconGausi hat folgendes geschrieben:
Das Verzeichnis der Anwendung (was man dann in der Regel braucht) bekommt man mit ExtractFilePath(ParamStr(0)); heraus.


gehts nicht auch mit ExtractFilePath(Application.Exename);??

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
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: Sa 15.03.08 15:42 
Jup, das geht auch. Alternativ auch noch ExtractFileDir(..) - der Unterschied liegt im letzten '\'.

_________________
We are, we were and will not be.
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: Sa 15.03.08 17:28 
user profile iconelundril hat folgendes geschrieben:
gehts nicht auch mit ExtractFilePath(Application.Exename);??
Worauf ich vor einiger Zeit hier im Forum aufmerksam gemacht wurde (ich hatte da nämlich vorher nie nachgesehen):
Application.Exename greift genau nur auf ParamStr(0) zu, ist also nur ein zusätzlicher Aufruf. ;-)
Knappe Franz Threadstarter
Hält's aus hier
Beiträge: 14



BeitragVerfasst: Sa 15.03.08 19:07 
Danke für die schnellen Antworten! Ich probier es gleich mal aus - mit ParamStr(0)^^