学习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;