我正在使用 Inno Setup 5.5.2 (u) 并且所有符号都很好,除了TStringList
. 我以这种方式初始化列表并添加项目:
Regions := TStringList.Create;
Regions.Add('Аврен');
Regions.Add('Айтос');
Regions.Add('Аксаково');
Regions.Add('Алфатар');
...
但我得到了:
感谢您查看这个。
我正在使用 Inno Setup 5.5.2 (u) 并且所有符号都很好,除了TStringList
. 我以这种方式初始化列表并添加项目:
Regions := TStringList.Create;
Regions.Add('Аврен');
Regions.Add('Айтос');
Regions.Add('Аксаково');
Regions.Add('Алфатар');
...
但我得到了:
感谢您查看这个。
目前你不能在 Inno Setup 中使用 Unicode 常量。里面有一段关于documentation
它的引述(我强调):
Unicode 编译器使用的新 RemObjects PascalScript 版本支持 Unicode,但不支持其输入源。这意味着它确实使用 Unicode 字符串类型,但脚本中的任何文字 Unicode 字符都将转换为 ANSI。
这并不意味着您不能显示 Unicode 字符串:例如,您可以使用编码的 Unicode 字符来构建 Unicode 字符串(例如 S := #$0100 + #$0101 + 'Aa';),或者从文件中加载字符串使用 LoadStringsFromFile,或使用 {cm:...} 常量。
因此,根据那里所写的内容,您可以将这些常量字符编码为以下格式:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
[Code]
procedure InitializeWizard;
var
Regions: TStringList;
ComboBox: TComboBox;
CustomPage: TWizardPage;
begin
CustomPage := CreateCustomPage(wpWelcome, 'Caption', 'Description');
ComboBox := TComboBox.Create(WizardForm);
ComboBox.Parent := CustomPage.Surface;
Regions := TStringList.Create;
try
Regions.Add(#$0410 + #$0432 + #$0440 + #$0435 + #$043D
Regions.Add(#$0410 + #$0439 + #$0442 + #$043E + #$0441
Regions.Add(#$0410 + #$043A + #$0441 + #$0430 + #$043A + #$043E + #$0432 + #$043E
Regions.Add(#$0410 + #$043B + #$0444 + #$0430 + #$0442 + #$0430 + #$0440
ComboBox.Items.AddStrings(Regions);
finally
Regions.Free;
end;
end;
或者,您可以通过建议的LoadStringsFromFile
函数从外部文件加载区域列表,并使用输出数组填充字符串列表(或直接填充组合框)。
或者你可以制作一个外部custom messages
文件。