![]() |
Arbeitspfade in Delphi
Hallo Leute,
ich habe ein Projekt bei dem ich verschiedene Unterordner mit lokalen Tabellen bearbeite. Wenn ich das Programm über die EXE starte, dann werden die Tabellen auch korrekt aufgerufen. Wenn ich nun aber dieses Programm über die Delphi-IDE starte, dann stimmen die Pfade nicht mehr überein, da Delphi den "Quelltext"-Ordner als Startordner nimmt. Wie kann ich Delphi sagen, dass es den Ordner mit der Exe als Startordner nehmen soll (der Ausgabeordner (Projekt->Optionen->Verzeichnisse/Bedingungen))? Ich könnte zwar allen Tabellen einen tablename über "extractfiledir(Application.exename)+'\...'" übergeben, das wäre aber in meinem Fall zu aufwändig. Gruß |
Re: Arbeitspfade in Delphi
setzte einfach den Pfad mit "setcurrentdir".
|
Re: Arbeitspfade in Delphi
Zitat:
Und was ist bitte an "extractfiledir(Application.exename)+'\...'" aufwendig? Die 15 Zeichen mehr eintippen kann es wohl nicht sein, wenn man damit eine stabile Anwendung bekommt. :roll: |
Re: Arbeitspfade in Delphi
Zitat:
Die einzige, in diesem Fall, richtige Methode ist das Arbeiten mit relativen Pfaden. |
Re: Arbeitspfade in Delphi
ja luckie, das ist mir schon klar. ich würde das auch nicht so machen, aber vielleicht gibt es ja irgendeinen grund dafür das er das unbedingt so lösen will :gruebel: und da denke ich ist setcurrentdir die einfachste lösung...
|
Re: Arbeitspfade in Delphi
@Luckie,
das sind zwei größere Anwendungen, die jetzt zusammengeführt werden. Da ist der Aufwand des manuellen Schreibens sehr hoch. Ausserdem wird beim Start des Programms eine SQL-Anweisung aus einer INI-DFatei gelesen, da kann ich nicht viel machen, war aber auch nicht meine Idee. Das Verändern der Pfade durch einen "Öffnen" oder "Speichern"-Dialog kann ich verhindern indem ich im OI des jeweiligen Dialoges unter Options das "ChangeDir" auf false setze. Die Zuweisung der Pfade in den Querys ist bis jetzt so: "select * from Tabellen\tabelle3.db" und das geht ja auch wenn ich die exe starte, da muss es doch eine Möglichkeit geben der Delphi-IDE den gleichen Startordner zu verpassen. Gruß |
Re: Arbeitspfade in Delphi
Und wenn du die anwendung weitergibst hast du den Schlamassel. :? Bzw. den hast du schon auf deinem System. Wenn du es also richtig machen willst, hilft da wohl nichts erstmal alles manuell von Hand zu ändern.
|
Re: Arbeitspfade in Delphi
@Luckie,
wenn ich das Programm weitergebe, dann kann ich doch im Installshieldexpress (Version von Delphi 7) das Arbeitsverzeichnis angeben, welches dann auch das Startverzeichnis ist. Da wird dann die "select * from Tabellen\tabelle3" Abfrage als "select * from Startverzeichnis\Tabellen\tabelle3" interpretiert. So ist das auch wenn ich meine exe starte. Aber die Delphi-IDE interpretiert diese Anweisung als "select * from Quelltext\Tabellen\Tabelle3" und wundert sich, dass es diese Tabelle nicht gibt. Da muss es doch eine Einstellmöglichkeit geben. Gruß |
Re: Arbeitspfade in Delphi
Kannst du, aber was wenn es der Anwender aus was für einen Grund auch ändert? Außerdem sollte ein anderes Program, aus was für einen Grund auch immer, SetCurrentDirectory aufrufen, was übrigens sehr unfein ist, findet dein Programm wieder nichts. Wie ich es auch drehe und wende, so wie du es bisher machst, hast du da eine tickende Zeitbombe programmiert. :?
|
Re: Arbeitspfade in Delphi
Hast ja recht Luckie...
Übrigens habe ich versehentlich in den Debugger-Optionen den Haken bei "integrierte Fehlersuche" rausgenommen, dadurch hat Delphi wohl nur im Queltextordner gesucht. Das war es wohl :-) Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz