學習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;
浙公網安備 33010602011771號