需要做成下面TreeView样子,图标应如何动态加载,英文字母表示图标
....A 主板 (此行代表类别,从数据库中抓取Kind)
|....A 华硕845PE (此叶代表商品,从数据库中抓取Goods)
|....A 微星6139
....B 芯片
|....B Intel Pentium 4 2.0G
|....B Intel Pentium 4 1.4G
等等...最好类别的图标索引值是由类别表中类别图标字段的值决定,比如:主板在类别表中图标字段<Kind_IconId>值为3,那么主板在TreeView中的Images index值为3.
....A 主板 (此行代表类别,从数据库中抓取Kind)
|....A 华硕845PE (此叶代表商品,从数据库中抓取Goods)
|....A 微星6139
....B 芯片
|....B Intel Pentium 4 2.0G
|....B Intel Pentium 4 1.4G
等等...最好类别的图标索引值是由类别表中类别图标字段的值决定,比如:主板在类别表中图标字段<Kind_IconId>值为3,那么主板在TreeView中的Images index值为3.
TreeView1.Items.Clear;
ADOkind.Close;
ADOkind.Sql.clear;
ADOkind.Sql.add('select * from kind ');
Try
begin
ADOkind.Open;
while not ADOkind.eof do
begin
a:=TreeView1.Items.Add(nil,ADOkind.fieldbyname('kind_Name').AsString);
ADOTreeView.close;
ADOTreeView.sql.clear;
ADOTreeView.sql.add('select * from product where prod_kind=:prod_kind');
ADOTreeView.Parameters.ParamByName('prod_kind').Value:=adoKind.fieldbyname('kind_Id').AsString;
ADOTreeView.open;
while not ADOTreeView.eof do
begin
TreeView1.Items.AddChild(a,ADOTreeView.fieldbyname('prod_name').AsString);
ADOTreeView.next;
end;
ADOKind.next;
end;
end;
except
On E:Exception do
begin
Application.MessageBox(pchar(E.message),'提示信息',MB_OK or MB_ICONWARNING);
Exit;
end;
end;如何在这段代码如何动态加载图标?上面的"A","B"就是代表图标
Snode:=TreeView1.Items.AddChild(Pnode,myName);
Snode.ImageIndex:=3;
Pnode是父节点,Snode是子节点。做个ImageList放入图就行了。