Combobox的问题(50分)

  • 主题发起人 主题发起人 narduo
  • 开始时间 开始时间
N

narduo

Unregistered / Unconfirmed
GUEST, unregistred user!
Combobx设成不可修改的csDropdownlist,其中内容需要程序中读取数据库添加,在未添加
的时候如何把一个值显示在上面。
 
你可以先在设计期写一个值,显示出来,读取数据库时再把他clear
ok?
 
combobox1.itemindex:=0;
 
楼上的方法可以啊,用itemIndex,不过在未添加的时候好像没有东西显示
 
但是未添加item的时候itemindex是无效的啊
to雪中漫步:您说的写是怎么写呢?好像设成csDropdownlist就不能赋值给TEXT了
 
设成csDropdownlist以后,自动会把Text清空的,没办法!
 
每次保存最近用过的。
下次打开就显示在上面。
 
我对CANVAS不是很熟,不知道能不能直接把字符串画上去?
 

直接用Text是不能赋值的。应该用
Items.Add
Items.Text
 
楼上说的不对,items: tstrings;tstrings是一个抽象类,当你将一个combobox放到form
上时,items其实已经是一个对象,items.add Delphi在实现它时其实是调用
SendMessage(combobox1.Handle, CB_ADDSTRING, 0, Longint(PChar(S)));如果你仔细
看一下combobox组件是怎样编写的,你就知道了,可以这样写
items.add('初始值');
items.itemindex := 0;
你可以在程序中想这样试一下
procedure TForm1.a(const s: string);
begin
SendMessage(combobox1.Handle, CB_ADDSTRING, 0, Longint(PChar(S)));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
a('sadfa');
combobox1.ItemIndex := 0;
end;

 
combobox1.clear;
comobox1.items.add('列1');
comobox1.items.add('列2');
combobox1.itemindex:=1;
结果应显示 列2
 
在form的onshow事件里加上
with combobox1 do
begin
items.add('最初想要看到的值');
itemindex := 0;
end;
就可以看到内容了
当你想要加入数据的时候:
with ComboBox1 do
begin
Items.Clear;
Items.Add('First');
Items.Add('Second');
.
.
Itemindex:=0;//将加入的数据的第0条设为默认显示的内容
end;
 
没读数据库的时候,items[0]的内容是'无内容!'。加载内容时先items.clear一下
 
后退
顶部