Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Verzeichnis in dem die exe ist rausfinden (https://www.delphipraxis.net/30734-verzeichnis-dem-die-exe-ist-rausfinden.html)

Pseudemys Nelsoni 28. Sep 2004 17:29


Verzeichnis in dem die exe ist rausfinden
 
hoi,

in meinem programm befindet sich eine klasse, wie kann ich aus dieser klasse heraus rausfinden wo sich die exe befindet? dort habe ich ja keine instanz von TApplication?

CalganX 28. Sep 2004 17:34

Re: Verzeichnis in dem die exe ist rausfinden
 
Hi,
wenn du die Unit Forms einbindest schon. ;)
Ansonsten kan dir Delphi-Referenz durchsuchenParamStr(0) treue Dienste leisten.

Chris

dizzy 28. Sep 2004 17:34

Re: Verzeichnis in dem die exe ist rausfinden
 
Das würde ich der Klasse dann aus dem Hauptprogramm mitgeben - vorzugsweise beim Create, oder nachher durch ne hübsche Zuweisung an ne Property :).

dizzy 28. Sep 2004 17:37

Re: Verzeichnis in dem die exe ist rausfinden
 
Zitat:

Zitat von Chakotay1308
Hi,
wenn du die Unit Forms einbindest schon. ;)
Ansonsten kan dir Delphi-Referenz durchsuchenParamStr(0) treue Dienste leisten.

Chris

Aber die Instanz seiner Application hat er dann immer noch nicht, sondern nur die Deklaration von TApplication.
Und ParamStr ist imho eine Variable einer TApplication-Instanz.

Entweder deine Klasse hat eine Property vom Typ TApplication der du deine eigentlich "Application"-Variable zuweist, oder du holst dir den Pfad aus'm Hauptprogramm raus, und schreibst dass in eine String-Property deiner Klasse.

CalganX 28. Sep 2004 17:50

Re: Verzeichnis in dem die exe ist rausfinden
 
Hi,
Zitat:

Zitat von dizzy
Aber die Instanz seiner Application hat er dann immer noch nicht, sondern nur die Deklaration von TApplication.

:wiejetzt: Nein, normalerweise steht da auch die Variable Application drin. ;) Einen Thread zur Frage, wo die drin ist, hatten wir ja auch letztens erst.

Zitat:

Zitat von dizzy
Und ParamStr ist imho eine Variable einer TApplication-Instanz.

Leider auch falsch. ;) ParamStr ist eine eigene Funktion aus der ... *denk* Ich glaube ... SysUtils oder Windows.

Chris

moritz 28. Sep 2004 17:53

Re: Verzeichnis in dem die exe ist rausfinden
 
Da wäre zum einen
Delphi-Quellcode:
Application.ExeName;
und zum anderen
Delphi-Quellcode:
ParamStr ( 0 );
Mit
Delphi-Quellcode:
ExtractFileDir ( Filename );
bekommst du dann den Pfad raus.

Edit: Du müsstest auch in der Klasse deine Application haben :gruebel:

Pseudemys Nelsoni 28. Sep 2004 18:05

Re: Verzeichnis in dem die exe ist rausfinden
 
danke leute ;)

nein mein prog ist nicht in meiner klasse, meiner klasse ist nur in meinem programm.

Golze 29. Sep 2004 18:29

Re: Verzeichnis in dem die exe ist rausfinden
 
Hollo zusammen,
ich finde alle bisherigen Antworten nicht so ganz passend. Wenn z.B. in einer DLL nach dem aktuellen Programm gesucht werden soll, ist das nicht so einfach. Die beste Lösung erscheint mir bisher immer noch ParamStr. Es geht aber auch mit
Delphi-Quellcode:
var
  ActualBufferLength: Cardinal;
  FilenameBuffer: array[0..260] of Char;
begin
  ...
  ActualBufferLength := GetModuleFileName(0, FilenameBuffer, SizeOf(FilenameBuffer));
  if ActualBufferLength > 0 then
  begin
    SetLength(aString, ActualBufferLength);
    aString := Copy(FilenameBuffer, 1, ActualBufferLength);
  end;
  ...
Das geht garantiert auch in einer DLL oder wo auch immer.

Grüße

Luckie 29. Sep 2004 19:24

Re: Verzeichnis in dem die exe ist rausfinden
 
Das mit der DLL ist ja nun ein ganz anderer Fall. Es geht ja nur darum, dass er die Klasse TApplication nicht in seiner Klasse zur Verfügung hat.

ParamStr ist übrigens in der Unit System.pas drinne.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 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