Здравствуйте. Нужна помощь. При запуске инсталла выдаёт такую ошибку "could not call proc"
Код:

#define NeedSize 4380
#define NeedInstallSize 78900
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.
[ Code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
var
PathLabel, TotalSpaceLabel, FreeSpaceLabel, NeedSpacelabel, InstallSpaceLabel: TLabel;
FreeMB, TotalMB: Cardinal;
Drive: String;
function PathCompactPathEx(pszOut: String; pszSrc: String; cchMax: UINT; dwFlags: DWORD): BOOL;
external 'PathCompactPathEx{#A}@shlwapi.dll stdcall';
function ShortPath(Input: String; Length: Integer): String;
begin
Result := StringOfChar(#32, 260);
PathCompactPathEx(Result, Input, Length, 0);
end;
function NumToStr(Float: Extended): String;
begin
Result:= format('%.2n', [Float]); StringChange(Result, ',', '.');
while (Result[Length(Result)] = '0')or((Result[Length(Result)] = '.')and(Pos('.', Result) > 0)) do
SetLength(Result, Length(Result)-1);
end;
function MbOrTb(Float: Extended): String;
begin
if Float < 1024 then Result:= NumToStr(Float)+' Мб' else
if Float/1024 < 1024 then Result:= NumToStr(Float/1024)+' Гб' else
Result:= NumToStr(Float/(1024*1024))+' Тб';
end;
procedure DirEditOnChange(Sender: TObject);
begin
Drive:= ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Drive, True, FreeMB, TotalMB);
TotalSpaceLabel.Caption:= 'Всего места на диске: '+MbOrTb(TotalMB);
FreeSpaceLabel.Caption:= 'Доступно места на диске: '+MbOrTb(FreeMB)+' ('+IntToStr(round(FreeMB*100/TotalMB))+'%)';
InstallSpacelabel.Caption:= 'Требуется места для установки: '+MbOrTb({#NeedInstallSize});
NeedSpaceLabel.Caption:= 'Требуется места на диске: '+MbOrTb({#NeedSize});
WizardForm.NextButton.Enabled:= (FreeMB>{#NeedInstallSize})and(FreeMB>{#NeedSize});
PathLabel.Caption := ShortPath('Install Path:' + #32 + TEdit(Sender).Text, 55);
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
PathLabel := TLabel.Create(WizardForm)
with PathLabel do
begin
Parent := DirEdit.Parent;
Caption := ShortPath('Install Path:' + #32 + DirEdit.Text, 55);
Transparent := True;
Font.Size := 10;
Left := DirEdit.Left;
Top := DirEdit.Top + Round((DirEdit.Height - Height) div 2);
end;
DirEdit.OnChange := @DirEditOnChange;
DirEdit.Hide;
end;
TotalSpaceLabel:= TLabel.Create(WizardForm);
TotalSpaceLabel.AutoSize:= False;
TotalSpaceLabel.SetBounds(0, 120, 300, 20);
TotalSpaceLabel.Parent:= WizardForm.SelectDirpage;
FreeSpaceLabel:= TLabel.Create(WizardForm);
FreeSpaceLabel.AutoSize:= False;
FreeSpaceLabel.SetBounds(0, 140, 300, 20);
FreeSpaceLabel.Parent:= WizardForm.SelectDirpage;
InstallSpacelabel:= TLabel.Create(WizardForm);
InstallSpacelabel.AutoSize:= False;
InstallSpacelabel.SetBounds(0, 160, 300, 20);
InstallSpacelabel.Parent:= WizardForm.SelectDirpage;
NeedSpaceLabel:= TLabel.Create(WizardForm);
NeedSpaceLabel.AutoSize:= False;
NeedSpaceLabel.SetBounds(0, 180, 300, 20);
NeedSpaceLabel.Parent:= WizardForm.SelectDirpage;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then
begin
DirEditOnChange(nil)
end;
end;
Всему виной вот эта строчка
Код:

PathLabel.Caption := ShortPath('Install Path:' + #32 + TEdit(Sender).Text, 55);
Моя фантазия небольшая и что со строкой делать я незнаю...