Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Datei öffnen im gleichen Ordner (https://www.delphipraxis.net/178695-datei-oeffnen-im-gleichen-ordner.html)

Jansteger 21. Jan 2014 20:45

Datei öffnen im gleichen Ordner
 
Hallo nochmal,

Ich habe nun das Problem, dass wenn ich eine Datei (hier: play.bmp) öffnen will, die im Gleichen Ordner ist, dann funktioniert das nicht. Die Datei befindet sich im selben Ordner wie das Projekt und die EXE. Ich öffne die Datei so:
Code:
SpeedButton2.Glyph.LoadFromFile('play.bmp');
dann bekomme ich immer eine Meldung, dass die Datei nicht gefunden wurde obwohl sie dort ist.
Was stimmt da nicht?

BUG 21. Jan 2014 21:02

AW: Datei öffnen im gleichen Ordner
 
Guck mal hier: Dateien aus Verzeichnis des Programmes öffnen
Es liegt vermutlich an einem verstellten WorkingDirectory und der relativen Pfadangabe.

blackfin 21. Jan 2014 21:05

AW: Datei öffnen im gleichen Ordner
 
Dann ist ganz einfach dein aktueller Arbeitspfad nicht das Verzeichnis der EXE.
Nun hast du zwei Möglichkeiten:

1) (unsauber) vorher den aktuellen Arbeitspfad über SetCurrentDir() setzen.

2) (sauberer) den vollen Pfad bei LoadFromFile angeben. Geht z.B. so:

Delphi-Quellcode:
SpeedButton2.Glyph.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'play.bmp');

ParamStr(0) ist der komplette Pfad + Dateinamen deiner EXE (Kommandozeilen-Parameter #0).
Alternativ kannst du auch Application.Exename verwenden, wenn du Forms eh schon eingebunden hast.

jaenicke 21. Jan 2014 22:39

AW: Datei öffnen im gleichen Ordner
 
Mehr dazu habe ich hier mal aufgeschrieben:
http://www.entwickler-ecke.de/viewto...499701&view=dl

p80286 22. Jan 2014 10:51

AW: Datei öffnen im gleichen Ordner
 
Blackfin hat noch eins ausgelassen:

3) stelle sicher daß Dein Programm die notwendigen Rechte besitzt.

Gruß
K-H

himitsu 22. Jan 2014 11:04

AW: Datei öffnen im gleichen Ordner
 
Zitat:

Zitat von p80286 (Beitrag 1244856)
3) stelle sicher daß Dein Programm die notwendigen Rechte besitzt.

Lesen sollte immer gehn. Es ist unwahrscheinlich (aber nicht unmöglich), das nur die EXE im eigenen Verzeichnis gelesen werden kann, aber die anderen Dateien gesperrt sind.

Aber im eigenen Programmverzeichnis schreiben, vorallem da in C:\Programme, sollte man besser lassen.

p80286 22. Jan 2014 12:00

AW: Datei öffnen im gleichen Ordner
 
Zitat:

Zitat von himitsu (Beitrag 1244860)
Es ist unwahrscheinlich (aber nicht unmöglich), das nur die EXE im eigenen Verzeichnis gelesen werden kann, aber die anderen Dateien gesperrt sind.

Eben drum!
(Aus leidvoller Erfahrung)

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz