各位大侠,我用delphi想在dbgrid中可以通过按键来显示不同的数据表,要怎么做呢?

dbgrid显示的数据表由谁来控制的,要怎么设置呢?我是菜鸟,请多多指教啊!... dbgrid 显示的数据表 由谁来控制的,要怎么设置呢? 我是菜鸟,请多多指教啊! 展开
 我来答
sirouszlh
2014-08-10 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:636万
展开全部
既然是按键 那就用消息机制处理,键盘消息
procedure testMsg(var Msg: TMessage); message WM_KEYDOWN;

procedure Form1.testMsg(var Msg: TMessage);

begin
If Msg.Message=wm_keydown Then
Begin
If (Msg.wparam= Vk_UP) Then //如果是向上键
Begin
//做你想做的事情 写sql 打开对应的dataset 例如adoquery 那对应绑定的dbgrid就自动改了
End;
End;

end;
更多追问追答
追问
感谢您的答案,但是我还有个关键的地方不懂,比如我只有一个dbgrid,然后我有20个表格想要显示,我的意思是我要按一次键盘的时候,就在这个表格中分别显示不同的表格, 所以我的问题是:当我按以下某个动作的时候,我是要控制adoquery指向不同的表格呢 ,还是我要放20 个adoquery,使其每个指向不同的表格呢? 如果是adoquery分别指向不同的表格,那么这条语句要怎么写呢?
追答
adoquery里的sql语句更改就好

If (Msg.wparam= Vk_UP) Then //如果是向上键
Begin
adoquery.close;
if 条件1 then
begin
adoquery.sql.text:='select * from table1';
adoquery.open;
end
else if 条件2 then
begin

adoquery.sql.text:='select * from table2';
adoquery.open;
end
.....
.....
.....
End;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式