请问以下代码有没有问题呢?其中ad是一个数据集,cb是一个combobox。目前的现象是,show出来的不是对应项的id。procedure TForm1.RzButton1Click(Sender: TObject);
begin
cb.Clear;
ad.First;
while not ad.Eof do
begin
cb.Items.AddObject(ad.fieldbyname('name').AsString,
tobject(integer(pchar(ad.FieldByName('id').AsString))));
ad.Next;
end;
cb.ItemIndex := 0;
end;procedure TForm1.RzButton2Click(Sender: TObject);
begin
showmessage(pchar(cb.items.objects[cb.itemindex]));
end;
begin
cb.Clear;
ad.First;
while not ad.Eof do
begin
cb.Items.AddObject(ad.fieldbyname('name').AsString,
tobject(integer(pchar(ad.FieldByName('id').AsString))));
ad.Next;
end;
cb.ItemIndex := 0;
end;procedure TForm1.RzButton2Click(Sender: TObject);
begin
showmessage(pchar(cb.items.objects[cb.itemindex]));
end;
var
i:Integer;
s:^string;
begin
for i:=0 to 10 do
begin
new( s );
s^:=InttoStr( i );
cb.Items.AddObject(s^,tobject(s));
end;
end;procedure TForm1.cbChange(Sender: TObject);
var
s:^string;
begin
s:=Pointer(cb.items.objects[cb.itemindex]);
showmessage(s^);
end;
S: String;
begin
s:= 'object';
ComboBox1.AddItem('sdfsdf', Tobject(integer(Pchar(s))));
showmessage(String(Pchar(Integer(ComboBox1.Items.Objects[0]))));
end; s:= 'object';
ComboBox1.AddItem('sdfsdf', Tobject(Pchar(s)));
showmessage(String(Pchar(ComboBox1.Items.Objects[0])));
s:= 'object';
ComboBox1.AddItem('sdfsdf', Tobject(integer(Pchar(s))));
showmessage(Pchar(integer(ComboBox1.Items.Objects[0])));
add完马上show是没问题的,但是add完一堆再show好像会有问题,你试试啦。