Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Setup.INI einlesen (https://www.delphipraxis.net/195677-setup-ini-einlesen.html)

GVolberg 17. Mär 2018 13:34

AW: Setup.INI einlesen
 
So, ich kann mal kurz erzählen, was jetzt alles passiert ist.

Als ich das mit dem .\setup.ini gelesen habe, dachte ich: "Brauchst Du nicht zu prüfen", da ich das schon vor einer Woche ausprobiert hatte. Kam immer eine Fehlermeldung zurück, dass die setup.ini nicht gefunden werden kann.

Jetzt ist es aber so, dass in meinem Debug-Ordner, wo Delphi das EXE erzeugt, keine weiteren Dateien lagen.

Zum Glück habe ich dann doch noch mal die .\setup.ini - Variante ausprobiert und die Fehlermeldung in Gänze durchgelesen. Danach habe ich dann die fehlenden Dateien ins Debug-Verzeichnis kopiert und siehe da... es läuft (natürlich!)

Danke euch allen. Ich werde im nächsten Schritt mal schauen, dass ich den Code umstelle auf eine Variante ohne ".\", damit ich mir das Programm nicht zerschiesse, wenn ich den ersten OpenDialog einbaue.

günni0 17. Mär 2018 13:41

AW: Setup.INI einlesen
 
Kurz überschlagen

Delphi-Quellcode:
IniFile := 'setup.ini';
Ini := ExtractFilePath(Application.ExeName) + IniFile;

if FileExists(Ini) then
 begin
 end else
  begin
   if OpenDialog1.Execute then
    begin
     Ini := OpenDialog1.FileName;
     
     
    end;
  end;

KodeZwerg 17. Mär 2018 13:43

AW: Setup.INI einlesen
 
Erstelle dir doch eine globale string variable, im OnCreate sowas hier 'MeinPfad := ExtractFilePath(ParamStr(0));'
Damit ist "MeinPfad" immer das Verzeichniss wo deine .exe liegt, egal ob zwischenzeitlich das Verzeichniss gewechselt wurde. Sollte alle zukünftigen Probleme beseitigen.

Nachtrag:
Oder als Funktion, Beispiel:
Code:
function MeinPfad : String;
begin
 Result := ExtractFilePath(ParamStr(0));
end;

GVolberg 17. Mär 2018 21:17

AW: Setup.INI einlesen
 
Zitat:

Zitat von KodeZwerg (Beitrag 1396456)
Erstelle dir doch eine globale string variable, im OnCreate sowas hier 'MeinPfad := ExtractFilePath(ParamStr(0));'
Damit ist "MeinPfad" immer das Verzeichniss wo deine .exe liegt, egal ob zwischenzeitlich das Verzeichniss gewechselt wurde. Sollte alle zukünftigen Probleme beseitigen.

Nachtrag:
Oder als Funktion, Beispiel:
Code:
function MeinPfad : String;
begin
 Result := ExtractFilePath(ParamStr(0));
end;

gute Idee.

by the way: Wenn ich solche Funktionen in eine Library (also wahrscheinlich unit) auslagern will, attach ich die dann mit einem einfachen "uses"?

KodeZwerg 17. Mär 2018 22:03

AW: Setup.INI einlesen
 
Ich verstehe das Attach nicht.

Also so hier könnte eine neue Unit ausschauen:

Delphi-Quellcode:
UNIT MeineHelfer; // Name der Unit

INTERFACE // was stellt diese Unit bereit

USES SysUtils; // was braucht diese Unit

 FUNCTION MeinPfad : String; // hier haben wir etwas was bereitgestellt werden soll

IMPLEMENTATION // nun zum Code

function MeinPfad : String; // hier die oben genannte Funktion
begin
 Result := ExtractFilePath(ParamStr(0));
end;

INITIALIZATION
FINALIZATION
END.
In deinem Projekt steht auch irgendwo weit oben ein "USES", da fügst du dann MeineHelfer hinzu,
ab nun kannst du in dem Formular wo du das USES MeineHelfer nutzt auch auf die Funktion MeinPfad zugreifen.

PS: "MeineHelfer.pas" muss im Verzeichniss deines Projekt oder im Suchpfad von Delphi liegen.

GVolberg 18. Mär 2018 09:43

AW: Setup.INI einlesen
 
Zitat:

Zitat von KodeZwerg (Beitrag 1396496)
Ich verstehe das Attach nicht.

tschuldige. Ich programmiere seit 25 Jahren in einer Sprache, wo man Libraries attached. Das, was in Delphi als "Use Unit" bekannt ist :-)

KodeZwerg 18. Mär 2018 10:03

AW: Setup.INI einlesen
 
Na dann hoff ich mal das trotz Sprachbarriere Dir weitergeholfen werden konnte und nun Dein "Wie gelang ich zu Setup.ini" Problem im positiven Sinne erfolgreich abgeschlossen ist. Ansonsten einfach mehr Nachfragen bei Unstimmigkeiten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 2 von 2     12   

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