Из справкиВсем привет. У меня есть код для изменения пути установки в зависимости от компонента и не работает команда /DIR
Т.е. она заменяет только значение WizardForm.DirEdit.Text при запуске. Но при этом ваш код все равно отрабатывает, и перекрывает заданное значение. Нужно делать проверку на наличие параметра /dir, и уже от него плясать./DIR="x:\dirname"
Overrides the default directory name displayed on the Select Destination Location wizard page. A fully qualified pathname must be specified. May include an "expand:" prefix which instructs Setup to expand any constants in the name. For example: '/DIR=expand:{pf}\My Program'.
как сделатьНужно делать проверку на наличие параметра /dir
Ну так как-токак сделать
function ParamExists(S: String): Boolean;
var
i: Integer;
begin
Result:= False;
for i:= 0 to ParamCount() do begin
if Pos('/'+Uppercase(S), Uppercase(ParamStr(i))) > 0 then begin
Result:= true;
Break;
end;
end;
end;
function GetCmdDirValue(): String;
var
i: Integer;
begin
Result:= '';
for i:= 0 to ParamCount() do begin
if (Pos('/DIR', Uppercase(ParamStr(i))) > 0) then begin
Result:= Copy(ParamStr(i), 6, Length(ParamStr(i)));
StringChange(Result, 'expand:', '');
StringChange(Result, 'EXPAND:', '');
Result:= ExpandConstant(Result);
Break;;
end;
end;
end;
***
if (ParamExists('dir')) then
WizardForm.DirEdit.Text:= GetCmdDirValue();
***
а куда ставитьНу так как-то
Код:function ParamExists(S: String): Boolean; var i: Integer; begin Result:= False; for i:= 0 to ParamCount() do begin if Pos('/'+Uppercase(S), Uppercase(ParamStr(i))) > 0 then begin Result:= true; Break; end; end; end; function GetCmdDirValue(): String; var i: Integer; begin Result:= ''; for i:= 0 to ParamCount() do begin if (Pos('/DIR', Uppercase(ParamStr(i))) > 0) then begin Result:= Copy(ParamStr(i), 6, Length(ParamStr(i))); StringChange(Result, 'expand:', ''); StringChange(Result, 'EXPAND:', ''); Result:= ExpandConstant(Result); Break;; end; end; end; *** if (ParamExists('dir')) then WizardForm.DirEdit.Text:= GetCmdDirValue(); ***
if (ParamExists('dir')) then
WizardForm.DirEdit.Text:= GetCmdDirValue();
Хм, ну я же не знаю, как по вашей логике должна действовать команда /dir.а куда ставить
Хм, ну что вы такой нетерпеливый? Я конечно понимаю, что всем хочется всё и сразу, но нужно учитывать, что у остальных просто нет времени.ребята!! ну ответьте на мой вопрос!!!