gpt4 book ai didi

delphi - 我如何在Delphi的ComboBox中使用项目文本的不同文本

转载 作者:行者123 更新时间:2023-12-03 19:33:36 26 4
gpt4 key购买 nike

我的表单上有一个TComboBox组件(comboxCountry)。
这是TComboBox中的项目。

项目1:“新加坡SG”

第2项:“印度IND”

项目3:“澳大利亚AUS”等等等。

当combobox值更改时,我想要combboxCounty.Text
仅在项目列表中显示国家代码,而不显示整个字符串。
例如,我只想显示“ SG”而不是“ Singapore SG” ..这就是我的工作方式
对于cboxBankCategory OnChange函数:

if comboxCountry.ItemIndex = 0 then
comboxCountry.Text := 'SG'

else if comboxCountry.ItemIndex = 1 then
comboxCountry.Text := 'IND'

else
comboxCountry.Text := 'AUS'


似乎正确,但对我不起作用,因为comboxCountry.Text仍然显示
项目列表中的整个国家/地区定义,而不仅仅是国家/地区代码
我的代码有错吗?

谢谢。

最佳答案

将组合框样式设置为csOwnerDrawFixed,然后在onDrawItem事件中输入以下内容:

procedure TForm1.comboxCountryDrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
s: String;
begin
if not (odComboBoxEdit in State )then
s := comboxCountry.Items[Index]
else begin

if comboxCountry.ItemIndex = 0 then
s := 'SG'

else if comboxCountry.ItemIndex = 1 then
s := 'IND'

else
s := 'AUS'
end;
comboxCountry.Canvas.FillRect(Rect);
comboxCountry.Canvas.TextOut(Rect.Left + 2, Rect.Top, s);

end;


并清除OnChange事件。

关于delphi - 我如何在Delphi的ComboBox中使用项目文本的不同文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com