combobox取ID问题
我写两个函数一个增加对象,一个读取.如下,但是得不到结果,不知为什么,请大家帮帮忙.
//下拉函数
Procedure additem(adocon:TadoConnection;combo: TComboBox;Str: String;sField:string;sID:string);
var
i:integer;
ado:TADODataSet;
SL:TStringList;
begin
combo.Clear;
ado := TADODataSet.Create(nil);
ado.Connection := adocon;
ado.CommandText := Str;
ado.Open;
SL:= TStringList.Create;
SL.Add(intToStr(0));
combo.clear;
combo.Items.AddObject('全部',TObject(SL[0]));
for i := 1 to ado.RecordCount do
begin
SL.Add(ado.FieldByName(sID).AsString);
combo.Items.AddObject(ado.FieldByName(sField).AsString,TObject(SL[i]));
ado.Next;
end;
combo.ItemIndex := 0;
ado.close;
ado.Free;
SL.Free;
end;
function getCombItem(combo: TComboBox;ID:string):integer;
var i:integer;
begin
for i:=0 to combo.Items.Count-1 do
begin
if strcomp(Pchar(string(combo.items.Objects[i])),Pchar(ID))=0 then
//string(combo.items.Objects[i])这个值不对,一部分是ID值,一部分不是,不知为什么.
begin
result:=i;
break;
end;
end;
end;
请大家帮帮忙.