说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在Delphi的DBGrid中插入其他可视组件

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi的DBGrid中插入其他可视组件

Delphi提供了功能强大的 DBGrid组件,以方便进行数据库应用程序设计。但是如果我们仅仅利用DBGrid组件,每一个获得焦点(Grid)只是一个简单的文本编辑框,不方便用户输入数据。Delphi也提供了一些其他数据组件来方便用户输入,比如DBComboBox,DBCheckBox等组件,但这些组件却没有DBGrid功能强大。Delphi能不能象Visual Foxpro那样让DBGrid中获得焦点网格可以是其它可视数据组件以方便用户呢?其实我们可以通过在DBGrid中插入其他可视组件来实现这一点。

Delphi对DBGrid处理的内部机制,就是在网格上浮动一个组件——DBEdit组件。你输入数据的网格其实是浮动DBEdit组件,其他未获得焦点地方不过是图像罢了。所以,在DBGrid中插入其他可视组件就是在网格上浮动一个可视组件。因此任何组件,包括从简单的DbCheckBox到复杂的对话框,都可以在DBGrid中插入。下面就是一个如何在DBGrid中插入DBComboBox组件的步骤,采用同样的办法可以插入其他组件。

1、 在Delphi 4.0中新建一个项目。

2、 分别拖动的Data Access组件板上DataSource、Table,Data Controls组件板上DBGrid,DBComboBox四个组件到Form1上。

3、 设置各个组件的属性如下:

rcf1对象 属性 设定植

Form1 Caption '在DBGrid中插入SpinEdit组件示例'

DataSource1 DataSet Table1

Table1 DatabaseName DBDEMOS

TableName 'teacher.DBF'

Active True

DBGrid1 DataSource DataSource1

DBComboBox1 DataField SEX

DataSource DataSource1

Visible False

Strings Items. '男'| '女'

意:我在这里用了Teacher.dbf,那是反映教职工的性别,只能是“男”或者是“女”。

4、 DrawDataCell事件是绘制单元格,当获得焦点网格所对应的字段与组合框所对应的字段一致时,移动组合框到获得焦点的网格上,并且

使组合框可视,从而达到在DBGrid指定列上显示DBComboBox的功能。设置DBGrid1的OnDrawDataCell事件如下:

procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);

begin

if (gdFocused in State) then

begin

if (Field.FieldName = DBComboBox1.DataField ) then

begin

DBComboBox1.Left := Rect.Left + DBGrid1.Left;

DBComboBox1.Top := Rect.Top + DBGrid1.top;

DBComboBox1.Width := Rect.Right - Rect.Left;

DBComboBox1.Height := Rect.Bottom - Rect.Top;

DBComboBox1.Visible := True;

end;

end;

end;

5、 DBGrid指定单元格未获得焦点时不显示DBComboBox,设置DBGrid1的OnColExit事件如下:

procedure TForm1.DBGrid1ColExit(Sender: TObject);

begin

If DBGrid1.SelectedField.FieldName = DBComboBox1.DataField then

begin

DBComboBox1.Visible := false;

end;

end;

6、 当DBGrid指定列获得焦点时DrawDataCell事件只是绘制单元格,并显示DBComboBox,但是DBComboBox并没有获得焦点,数据的输入还是在单元格上进行。在DBGrid1的KeyPress事件中调用SendMessage这个 Windows API函数将数据输入传输到DBComboBox上,从而达到在DBComboBox上进行数据输入。因此还要设置KeyPress事件如下:

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin

if (key < > chr(9)) then

begin

if (DBGrid1.SelectedField.FieldName =DBComboBox1.DataField) then

begin

DBComboBox1.SetFocus;

SendMessage(DBComboBox1.Handle

WM_Char

word(Key)

0);

end;

end;

end;

程序在中文Windows 98,Delphi 4.015 下调试通过。希望本文能使你可以更加方便快捷的开发数据库应用程序。

Twitter实时分析平台主要合作伙伴Dataminr:让用户不再错过重要的推文 OpenStack、OpenNebula、Eucalyptus、CloudStack社区活跃度比较 XOR的黄色大象:Erasure Code为Hadoop节省数据恢复带宽 竞争将越来越激烈:戴尔或也进军可穿戴计算市场 新技术:可直接在人脑播放广告 编程调试和诊断的五大规则 70%开发者:对现有应用推广和广告并不满意 四种方案:将OpenStack私有云部署到Hadoop MapReduce环境中 扩展PHP的五个简单技巧,让单服务器并行支撑30000用户 硅谷为什么无法复制 PubNub+Cloudinary:简单几步快速搭建实时图片分享应用 影响互联网行业的十大API(信息图) Hadoop+GPU强强联手的性能探索 Eurora获最节能超算殊荣,中国天河2号位列第31 程序员的野心:让GPU像CPU一样运行 Gungho热潮正在逐渐消退? Thalmic创始人专访:穿戴式体感设备MYO背后的开发故事 移动周报:GSMA各种神器,Qt 5.1,Android 4.3,本周惊喜多多! 奇虎360Web平台部基础架构团队访谈:开源线上数据库中间件Atlas 化繁为简:UC优视发布“UC+”开放平台战略 从40亿美元到10亿美元 Hulu的美梦是否又一次成为泡影? 百度开发者俱乐部第六期:BAE3.0开放内测 云编程马拉松启动 微软宣布将于今年9月30日正式关闭MSN TV服务 程序员不应该再犯的五大编程错误 中国开源事业,路在何方? StackOverflow上的编程趋势 Oracle悄然将Berkeley DB许可证更改为AGPL 简单易用,保护隐私:麻省理工的邮件数据挖掘分析工具Immersion Microsoft Ventures进入中国,为云生态系统构建提供加速度! 这是场战争:盘点那些参与智能手表竞争的厂商 三星豪掷80万美元奖金 第二届全球开发者挑战赛开幕 ccnet(苦海放歌)yaoxuefeng(锋雨者)brainf(后街)请接分 配置节的type的第二个参数的含义 报表问题。 最近在找个网站管理系统,各位能否给个建议 windows2000的奇怪问题 关于如何自定义组件问题 有关windows 98自动重起问题。 ListBox问题 VFP8.0中的数组问题,高手和用过的人来看看! 数据库的移植问题? 重新开机时常常变成"大图标",怎样设置使WIN2K所有磁盘(c,d,e盘)上的所有文件夹和文件以"列表"显示,就是让"查看"->"列表"固定? oracle9i的安装文件都有什么?望高之!急! 哪位有没有SCJP培训的录音或其他教学的好东西阿 MSComm控件在设计时运行没问题,但打包后装到别的机子老是出现“没有注册类”,求救? delphi 做的数据库应用程序如何移植?? copysign怎么用啊? 如何将一个网页的所有链接均自动加为绝对链接? 技术与数学的问题 本人写了一个设置纸张方向和大小的函数,其中MyDevMode.dmPaperSize = psize '若vbPRPSA3 设置纸大小为A3,但在VB对象库中找不A2张对应值 tomcat4.1.24中的sevlet问题 我下载了linux的iso文件,可怎么安装啊!! 我想问一下,有关于计数器的相关的信息? 救急:是否可以在两个页面(两个单独打开得ie浏览器页面)传递参数,如何实现啊? JDBC相关的两个问题 Oracle8.1.6怎样连接SQL SERVER2000 ?(在线等待) inserted表问题 急!!!关于FileSystemObject问题,在线等 dll 编译问题 请教 请教关于iterator与container? 谁有mixerAPI的中文资料,如(mixerGetLineInfo)我需要弄懂原理(不需要MSDN) 请问“怎么样才能修改以有的flash文件”,拜托,在线等待 如何使相同的子窗口显示一个? ?请教高手有关Align的问题。 高手帮我谢谢注释~~高分相赠~~~~谢谢高手~~~~ 各位大牛们,小弟想请教大家对FlowMIS这个平台有多少了解,用此平台进行二次开发(企业信息系统)好不好。 SQL SERVER2000 怎样连接Oracle8.1.6(在线等待) C语言程序设计 如何在英文字符集的客户端访问服务器为中文的数据库? 那4M是不是让诺基亚给偷了?! 如何调用ResetPrinter函数设置默认打印机 listview使用的问题 delphi的打包问题 请大家推荐一个短信网关 调查:当你身边响起神圣的国歌时,你会不会不由自主站起来,手放到胸前,跟着节奏一起唱起来?(有感而发) 请问如何调用.chm的帮助文件? 如何调用系统默认打印机的属性! 请教新手问题~~~麻烦哪为大侠给解释解释~谢~ 如何用struts实现阴阳色列表? 怎么用vb建立一个数据库呀?注意,不是一个表,是一个数据库! 如何调用系统默认打印机的属性! 一个很老很过时的数码相机。 新文化运动前期的根本目的是( )新文化运动前期的根本目的是( )A、改造传统的儒家思想 B、倡导西方文化,促进社会进步C、倡导新文学和白话文 D、反对思想领域的尊孔复古我知道是B, 人们走进放菜的地窖时,有时会发生晕倒现象,这是因为地窖里的大白菜,番薯等也再呼吸,它们跟人一样,也是呼进二氧化碳.日长月久,它们呼出的二氧化碳就像滚雪球一样越积越多.问(1)你能 Sylvia的昵称是什么?sylvia和bella哪个好 新文化运动的目标是什么?要考中国中国近现代史纲要了,有一个这个题,书上没翻到,囧. 地窖内存放的红薯为什么长白毛?还有点发软的现象.这是什么原因,温度从没超过15度. Sylvia怎么读 新文化运动的目的 红薯地窖中硫化氢气体怎么分解 6.下列说法正确的是 ()A.只要物体运动的速度不变,物体的动量就一定不变B.只要物体运动的加速度不变,物体的动量就一定不变C.只要物体所受的合外力不变,物体的动量就一定不变D.只要物 新文化运动的目的是什么 有谁知道这是什么虫子. 一个简单的概念性问题0是否可以进行开立方运算,如果可以,那么“根号0”是有理数还是无理数?谢谢! 原核细胞的核糖体两个亚基分别是多大? 怎么写课题 这种昆虫是什么?有谁知道? 与初中有关的所有物理公式(越详细越好) 高一物理第七题.谢谢.求解! 有谁知道这是什么昆虫?经常看见如图的虫子, 单细胞生物有没有线粒体? 课题怎么写啊? cad,样条曲线是什么,拟合是什么,他们之间有什么区别,对多段线进行拟合则新的线要通过原来多段线上的点,而做成样条曲线,则不通过那些多段线上的点,为什么? 好的,但是我想先看一下电视节目.的英语怎么说求大神 桃树接桃子是什么生殖方式 He doesn´t have his schoolbag.求翻译 早期城市的基本特征有..六个 什么是相对误差?测定一块氯化钠中含有的碳酸氢钠杂质的含量,用氢氧化钙来算生成的碳酸钙的质量为什么说将氢氧化钠换成氢氧化钡会更好 我打错了,是氢氧化钙换成氢氧化钡 求和鲁迅先生有关的文章! 求问城市与广大农村相比,具有哪些基本特征? 生物里的NADP是什么意思? 物质世界的奥秘虽很多,但人们总有一天会穷尽它;人类总有一天会穷尽对一切事物的认识,为什么是错的? 为什么说密集性是城市基本特征之一 一架飞机以加速度a从地面由静止开始竖直向上起飞,每秒耗油量V=pa+q(p,q为常数).若飞机飞到某一高度,耗油量最小,则其加速度大小为多少. 前者穷尽精力去探索存在的意义,后者迅速适应这个世界.你是?前者就象地球上苦苦追寻宇宙奥秘的科学家,他或许聪明绝顶,或许知识渊博,却永远不可能找出所有未知的答案.而后者则象是人类 Helicopters have only been worked on by man since 1940.怎么翻译这句话,主要是only 我不解 一个多边形的内角和等于外角和的n倍,则这个多边形的边数是 选择填空:This room is ( ),but it doesn't have ( ).A:enough big;enough windows B:big enough;windows enough C:enough big;windows enough D:big enough;enough windows A man has been arrested____the murder of the teenager.A in connection withB to connect 已知X为第二象限角,问X/2为第几象限角?我想问的是 用直角坐标系 解题的那个简便做法,我就记得 是X为第二象限,就把什么分为两部分 英语翻译说错了,是这句话有什么错误 Hardware changes might not have been detected 市场调研方案怎么写? 由sin(2a)>0 推出a是第一,第三象限角求 英语原型填空 send 还是 sendsPeople in western countries ____ e-cards to each other at Christmas.这里改用 send 还是第三人称 sends.这里的people 貌似是作单数的吧,今天老师说的时候我没听清楚. 调研方案怎么写?就是调查一个市场的具体的文书.有什么格式呢?最好能给份例子啊! ,函数y=—x+1的图像过那几个象限 NADP+怎么念 怎么写 交通调查方案? 什么是多价昆虫过敏源的一种!但不知道这个多价昆虫是一种虫子还是昆虫的一个种类!有知道的请帮帮忙 Do you expect _to be any possibility that he will be elected chairman?A .it B.there 2.The information on the Internet gets around much more rapidly than _in the newspaper.A.it B.that3.I intended to compare notes with a friend,but unfortunately _cound 英语翻译 人遇到困境,应该怎样面对? 请问 you expect to have that person to yourself 发光的不一定是金子.这句话怎么理解最好举例 为什么人很困惑 一生物题,答案为B 请写出解释一道生物题;对某植物进行以下处理:(甲)持续光照10分钟;(乙)光照5秒钟后再黑暗5秒钟,连续交替进行20分钟.如其他条件不变,则在甲、乙两种情况下植物 计划进度与实际进度匀速进行是什么意思 精尽人亡这句话有科学依据吗? 吉普顿服装怎么样 法布尔是怎样看待昆虫世界的 Sylvia这个名字什么意思呢~---Sylvia---最好有出处啦~ 分析称土耳其宣布选中国导弹只是向欧美科学家在澳大利亚被捕海岸外发现新品种巴勒斯坦欲就以色列建定居点寻求国际司纳粹盖世太保头目被指埋葬于柏林犹太人马来西亚移民局前总监被判处贪污罪名成Facebook首次承认传闻:年轻人日政府开发海底资源动作迟缓引日研究机日超2成地震重建预算未使用 政府被指印度外长访澳为三年前留学生在澳被杀案澳大利亚警方追捕偷车贼 路过少年被无一驻日美军士兵涉嫌酒驾被逮捕 称已小新华国际时评:“弱冠”欧盟期待“涅槃澳大学开设全球商业学士学位课程 多语韩媒称韩国雾霾源自中国 记者实地考证巴勒斯坦四名武装分子与以军发生冲突被中美企业家共商双边合作前景男子把鸡蛋强塞女子下体后捏碎性侵 辩韩国模特独岛上秀服装 旨在宣示“主权习近平:坚持男女平等基本国策 发挥妇经济学家樊纲:中国经济已经基本完成软罗马尼亚:保管箱频失窃 银行安全自查苏亚雷斯:我会留在利物浦滁州市最大规模城市综合体项目落户高铁杰拉德:苏亚雷斯足以匹敌梅西、C罗C罗:没有我的皇马 看上去也不错……罗杰斯赛后狂赞苏亚雷斯:世界最佳前锋罗本重伤后已住院治疗 伤情仍待确诊巴蒂斯图塔:巴洛特利正浪费天赋 看着马洛塔:博格巴能夺金球奖英超 奥维多绝杀 曼联0 1埃弗Goal 意甲第15轮前瞻:博洛尼亚温格:曼联仍有机会争冠桑德兰 vs 切尔西 战报内马尔:小罗和里瓦尔多是我的榜样朝鲜发表公报 称韩国指责朝干涉内政是日本拟修改武器出口原则 将对部分国家全球最丑狗去世粉丝哀悼 主人以其名字曼德拉传记电影展其跌宕一生 成南非最日前防卫相:日本难通过集体自卫权介入路透社:世界杯或致巴西雏妓猖獗 父逼浙江台州老板购买坦克涉嫌违规被收回严重污染雾霾围城 沪空气转好要等下周
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘