をマークとしてキリル文字列が現れる:今Inno Setupの質問は、私はこのコードを実行している
function CmdLineParamExists(const Value: string): Boolean;
var
I: Integer;
begin
Result := False;
for I := 1 to ParamCount do
begin
if CompareText(Copy(ParamStr(I), 1, Length(Value)), Value) = 0 then
begin
Result := True;
Exit;
end;
end;
end;
function GetAppName(Value: string): string;
begin
if CmdLineParamExists('/COMPONENTS=prog2') then
begin
Result := 'Программа 2'; //<----This shows up as ????????? 2
end
else
begin
Result := '{#SetupSetting("AppName")}';
end;
end;
procedure CurPageChanged(CurPageID: Integer);
var
S: string;
Begin
if CurPageID = wpSelectDir then
begin
S := SetupMessage(msgSelectDirLabel3);
StringChange(S, '[name]', GetAppName(''));
WizardForm.SelectDirLabel.Caption := S;
end;
end;
を、私は私がここで間違ってやっているかわからないんだけど。 GetAppName
の結果を使用する場合を除いて、他の文字列がすべて正しく表示されます。ある時点で何かをAnsiString
に変換する必要がありますか?
OK ...それは驚きです。とにかく、 'CustomMessage'の代わりにコンポーネント記述をコードに読み込むことはできますか?例えばこの場合、私のコンポーネント名は 'prog2'で、記述は'Программа2'です。私はそれを二度定義することを避けたい。 –
'{cm:Program2}' –
のような説明を定義してください。ですから、私は問題をいつも別の方法でappproachするべきです。やってみよう。 –