You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup中TNewComboBox控件在[Code]段是否支持Item Data?

关于Inno Setup中TNewComboBox控件使用Item Data的问题

我曾在Inno Setup新闻组提出过相关问题,但未收到任何回复。

请问是否可以在Inno Setup的[Code]段中为TNewComboBox控件使用Item Data,就像其他编程语言那样?我尝试查找相关信息,但一无所获。


当前预处理器脚本(脚本顶部)

; Language values
#define MDB_ENG "0"
#define MDB_ESP "1"
#define MDB_DEU "2"
#define MDB_ITA "3"
#define MDB_NLD "4"
#define MDB_TRK "5"
#define MDB_PTB "6"
#define MDB_SVE "7"
#define MDB_DAN "8"
#define MDB_RUS "9"
#define MDB_FIN "10"
#define MDB_AFK "11"
#define MDB_CHS "12"
#define MDB_SQI "13"
#define MDB_FRA "14"
#define MDB_BGR "15"
#define MDB_TWI "16"
#define MDB_FPO "17"
#define MDB_SWK "18"
#define MDB_ELL "19"
#define MDB_UKR "20"
#define MDB_KHM "21"
#define MDB_ROM "22"
#define MDB_SMO "23"
#define MDB_IND "24"
#define MDB_VIT "25"
#define MDB_ARA "26"
#define MDB_PLK "27"
#define MDB_SRN "28"
#define MDB_JPN "29"
#define MDB_LIN "30"

#define DatabaseFiles() \
    DatabaseFile('English', 'English') + \
    DatabaseFile('Spanish', 'Español') + \
    DatabaseFile('German', 'Deutsch') + \
    DatabaseFile('Italian', 'Italiano') + \
    DatabaseFile('Dutch', 'Nederlands') + \
    DatabaseFile('Turkish', 'Türkçe') + \
    DatabaseFile('Portuguese', 'Português') + \
    DatabaseFile('Swedish', 'Svenska') + \
    DatabaseFile('Danish', 'Dansk') + \
    DatabaseFile('Russian', 'Русский') + \
    DatabaseFile('Finnish', 'Suomi') + \
    DatabaseFile('Afrikaans', 'Afrikaans') + \
    DatabaseFile('Chinese Simplified', '汉语(简化字)') + \
    DatabaseFile('Albanian', 'Shqip') + \
    DatabaseFile('French', 'Française') + \
    DatabaseFile('Bulgarian', 'Български') + \
    DatabaseFile('Twi', 'Akan') + \
    DatabaseFile('Tagalog', 'Tagalog') + \
    DatabaseFile('Swahili', 'Kiswahili') + \
    DatabaseFile('Greek', 'Ελληνική') + \
    DatabaseFile('Ukrainian', 'Українська') + \
    DatabaseFile('Cambodian', 'Cambodian') + \
    DatabaseFile('Romanian', 'Română') + \
    DatabaseFile('Samoan', 'Faa-Sāmoa') + \
    DatabaseFile('Indonesian', 'Indonesia') + \
    DatabaseFile('Vietnamese', 'Vietnamese') + \
    DatabaseFile('Arabic', 'العربية') + \
    DatabaseFile('Polish', 'Polski') + \
    DatabaseFile('Sranantongo', 'Sranantongo') + \
    DatabaseFile('Japanese', '日本語') + \
    DatabaseFile('Lingala', 'Lingala')

[Code]段中的下拉框创建代码

// cbDatabase
cbDatabase := TNewComboBox.Create(Page);
with cbDatabase do
begin
#define DatabaseFile(Name, Text) \
    'Items.Add(''' + Text + ''');' + NewLine + \
    'if ActiveLanguage = ''' + Name + ''' then ItemIndex := Items.Count - 1;' + NewLine

    Parent := Page.Surface;
    Left := ScaleX(8);
    Top := ScaleY(128);
    Width := ScaleX(177);
    Height := ScaleY(21);
    Style := csDropDownList;
    TabOrder := 3;

    // Languages
    {#DatabaseFiles}
end;

我需要将这段代码升级,采用Objects方法来实现Item Data功能,同时还要添加排序功能。我清楚其他代码会因此受到影响,但这里暂不展开说明。


内容的提问来源于stack exchange,提问作者Andrew Truckle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 17:52:11