USEGEAR

导航

学习unigui【33】学习TUniCombobox使用

场景:

一表有记录:

'南京', '111'
'苏州', '222'
'无锡', '333'
'常州', '444'

希望通过TUniCombobox显示name供下拉选择。然后返回code。

这个是个老话题,在TUniCombobox却折腾半天,真是活见鬼了。

少废话,上干货:

图片

 

cbb1.Items.AddObject('南京', TObject(Pointer(111)));
cbb1.Items.AddObject('苏州', TObject(Pointer(222)));
cbb1.Items.AddObject('无锡', TObject(Pointer(333)));
cbb1.Items.AddObject('常州', TObject(Pointer(444)));

 

get code:

图片

 

var
  code: Integer;
begin
  if cbb1.ItemIndex >= 0 then
  begin
    code := Integer(cbb1.Items.Objects[cbb1.ItemIndex]);
    ShowMessage('选中的城市编码是:' + IntToStr(code));
  end;

end;

 如果使用string转成Tobject:

  public
    Value: string;
    constructor Create(const AValue: string);
  end;


{ TStringObject }
===========================
constructor TStringObject.Create(const AValue: string);
begin
  inherited Create;
  Value := AValue;
end;
===========================
cbb1.Items.AddObject('南京',TStringObject.Create('111'));
cbb1.Items.AddObject('苏州', TStringObject.Create('222'));
cbb1.Items.AddObject('无锡', TStringObject.Create('333'));
cbb1.Items.AddObject('常州', TStringObject.Create('444')); ===========================
var
  Obj: TStringObject;
begin
  if cbb1.ItemIndex >= 0 then
  begin
    Obj := TStringObject(cbb1.Items.Objects[cbb1.ItemIndex]);
    ShowMessage('选中的城市编码是:' + Obj.Value);
  end;

 

posted on 2025-07-27 10:15  USEGEAR  阅读(19)  评论(0)    收藏  举报