![]() |
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? |
Re: Verzeichnis in dem die exe ist rausfinden
Hi,
wenn du die Unit Forms einbindest schon. ;) Ansonsten kan dir ![]() Chris |
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 :).
|
Re: Verzeichnis in dem die exe ist rausfinden
Zitat:
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. |
Re: Verzeichnis in dem die exe ist rausfinden
Hi,
Zitat:
Zitat:
Chris |
Re: Verzeichnis in dem die exe ist rausfinden
Da wäre zum einen
Delphi-Quellcode:
und zum anderen
Application.ExeName;
Delphi-Quellcode:
Mit
ParamStr ( 0 );
Delphi-Quellcode:
bekommst du dann den Pfad raus.
ExtractFileDir ( Filename );
Edit: Du müsstest auch in der Klasse deine Application haben :gruebel: |
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. |
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:
Das geht garantiert auch in einer DLL oder wo auch immer.
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; ... Grüße |
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