delphi dbgrid 下拉 出现新的类
如代表生活用品AA的小类衣服001鞋子002牙膏003不单击001002003是隐藏的单击后出现小类...
如代表 生活用品 A
A的小类 衣服 001
鞋子 002
牙膏 003
不单击 001 002 003是隐藏的 单击后 出现 小类 展开
A的小类 衣服 001
鞋子 002
牙膏 003
不单击 001 002 003是隐藏的 单击后 出现 小类 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏5(财富值+成长值)
1个回答
展开全部
1 在onDrawColumnCell里
写
if (gdFocused in State) then
begin
if (Column.FieldName='对应的列字段名') then
begin
TmpRect:=Rect;
end;
end;
2 在onCellClick里
if Column.FieldName='对应的列字段名' then
begin
KRect:=TmpRect;
tmpComBox.Left := KRect.Left + dbgrid1.Left;
tmpComBox.Top := KRect.Top + dbgrid1.top;
//这left和top的值 和程序布局有关 在我的程序里 是dbgrid1在窗口的位置加上被选择区域的位置 个别程序可能要自己调整。
tmpComBox.Width := KRect.Right - KRect.Left;
tmpComBox.Height := KRect.Bottom - KRect.Top;
tmpComBox.Clear;
tmpComBox.Items.Add('衣服001');
tmpComBox.Items.Add('鞋子002');
tmpComBox.Items.Add('牙膏003');
tmpComBox.ItemIndex:=0;
tmpComBox.Visible:=true;
end;
在 tmpComBox被选择后 visible设置成false
写
if (gdFocused in State) then
begin
if (Column.FieldName='对应的列字段名') then
begin
TmpRect:=Rect;
end;
end;
2 在onCellClick里
if Column.FieldName='对应的列字段名' then
begin
KRect:=TmpRect;
tmpComBox.Left := KRect.Left + dbgrid1.Left;
tmpComBox.Top := KRect.Top + dbgrid1.top;
//这left和top的值 和程序布局有关 在我的程序里 是dbgrid1在窗口的位置加上被选择区域的位置 个别程序可能要自己调整。
tmpComBox.Width := KRect.Right - KRect.Left;
tmpComBox.Height := KRect.Bottom - KRect.Top;
tmpComBox.Clear;
tmpComBox.Items.Add('衣服001');
tmpComBox.Items.Add('鞋子002');
tmpComBox.Items.Add('牙膏003');
tmpComBox.ItemIndex:=0;
tmpComBox.Visible:=true;
end;
在 tmpComBox被选择后 visible设置成false
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询