Решение 1
Вот мое решение. Я использовал его во многих программах и смело
рекомендую его вам.
|
|
procedure
TForm1.Button1Click(Sender: TObject); var
szFileName : array[0..49] of char;
szModuleName : array[0..19] of char;
iSize : integer; begin
StrPCopy(szModuleName, 'NameOfModule');
iSize :=
GetModuleFileName(GetModuleHandle(szModuleName),szFileName,
SizeOf(szFileName));
if iSize > 0 then
ShowMessage('Имя модуля с полным путем: '
+ StrPas(szFileName))
else
ShowMessage('Имя модуля не
встречено'); end;
|
Решение 2
Вот как элегантно решил эту задачу Андрей Иванов (lynxhome@mail.ru):
|
|
procedure
TForm1.Button1Click(Sender: TObject); begin
ShowMessage(ParamStr(0)); end;
|
Решение 3
Вот еще одно решение от Степанова Павла (mercury@gin.global-one.ru):
|
|
//
Включить в Uses SysUtils
procedure
TMainForm.Button2Click(Sender: TObject); var AppDirectory,AppPathName
: string; begin
AppPathName := Application.ExeName;
AppDirectory := ExtractFilePath(AppPathName);
messageDlg('Имя программы '+
AppPathName+#13+
'Имя каталога программы '+
AppDirectory
,mtInformation,[mbOK],0); end; | |