关于用ComboBox保存代码的有关问题,ing
关于用ComboBox保存代码的问题,急ing
请问以下代码有没有问题呢?其中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;
------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
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;
------解决方案--------------------
你那个不知道是不是,showmessage参数要传string类型的问题,我试了三种方法都可以的
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])));
请问以下代码有没有问题呢?其中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;
------解决方案--------------------
procedure TForm1.Button1Click(Sender: TObject);
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;
------解决方案--------------------
你那个不知道是不是,showmessage参数要传string类型的问题,我试了三种方法都可以的
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])));