Вот мое решение. Я использовал его во многих программах и смело рекомендую его вам.
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 thenShowMessage('Имя модуля с полным путем: ' + StrPas(szFileName))elseShowMessage('Имя модуля не встречено');end; |
Решение 2
Вот как элегантно решил эту задачу Андрей Иванов ():
procedure TForm1.Button1Click(Sender: TObject); begin ShowMessage(ParamStr(0));end; |
Решение 3
Вот еще одно решение от Степанова Павла ():
// Включить в 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; |
[000023]