在Delphi编程中巧用TstringGrid控件
) ( Tst ri ng2 信息库的内容读到下拉列
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
中。对于 控件的缺省的列宽; Default Row Height 设置
) St ri ng Grid 控件的缺省的行高; Fi xedCols 和 Grid 控件 , 如果某个列需要输入汉字信息 , 如
) ( “工具名称”,最好的效果就是鼠标移入该列时 , Fi xedRows 锁定某行、某列; Grid Height , Grid2
( ) 弹出“工具名称”选择窗口供用户选择 , 选择后 Widt h 设定整 个 栅 格 的 高 度 和 宽 度; Grid2
) 窗口自动关闭。实现这一
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
依赖于 OnSe2 (Li ne Widt h 设定栅格中单元格之间线的宽度;
lect Cell 事件的触发 ,它的触发时机是当鼠标选 ( ) Op tio ns 属性 这个特性用于设置栅格的选项
中这一单元时触发。例如在选中 St ri ng Gridl 的 等等 ,以上这些属性开发人员可以根据需要灵
第一列时弹出“工具名称”选择窗体 , 具体做法 活运用可以获得满意的效果。
如下 :
1 几种常见问题的实现方法p rocedure Tfo r ml . St ri ng Gridlselect Cell
( 1 . 1 锁定小数位Sender : TObject ;ACol ,ARow : Integer ; 使用过 Visual Fo xp ro 的人都有这样的体 ) var CanSelect :Boolean; 会 ,在直接对数据表进行操作时, 它的小数位是 begi n 根据数据结构的定义直接在表单中定位的。因 col : = acol ; / / Col , Row 为在主窗体此 ,在数据录入时 ,不需要再键入小数点 , 而在 中定义的变量 Delp hi 中没有提供这样的缺省功能 , 但使用
row : = arow ; Tst ri ng Grid 控件所提供的事件和过程可以实 现此 功 能。具 体 做 法 是 调 用 Tst ri ng Grid 的 () ( ) col = land row > = 1t hen begi n if
Gex Edit Mask 事 件 , 来 实 现 此 功 能 , 例 如 : 将 ) (f r mgj mc : = tf r mgi mc . create self ; St ri ng Gridl 的第二列定义为数字型字段 , 数字 ( ( f r mgj mc . top : = ro und screen . height -长度为 5 位 ,其中小数位为 2 位。 ) ) f r mgj mc . height / 2; p rocedure Tfo r m1 . St ri ng Gridl Get Edit Mask ( ( f r mgj mc . lef t : = ro und screen . widt h - ( Sender : TObject ;ACol , ) )/ / 子窗体显示的f r mgj mc. widt h / 2 - 100 ; ) A Row : Integer ;var Value : St ri ng; 位置可以根据
begi n 具体情况而定
if acol = 2 t hen value : =“99 . 99 ;1 ;”; f r mgj mc . show ; end ;
end ; 该事件发生在需要重新显示单元中的文字
END ; 时。
1 . 2 选中某个单元时弹出子窗口的实现 1 . 3 整行插入或删除记录的实现
在程序设计过程中 , 往往会遇到录入程序 在 Tdbst ri ng Grid 控件中 ,行的插入和删除 中需要输入大量的汉字 ,软件开发人员为了减 是自动实现的 , 但在 Tst ri ng Grid 控件中 , 必须 少程序中的汉字输入量 ,往往采用编码的方式 自己做程序实现 ,插入行的过程是这样的 : 当鼠 对某些具有一定特点和规律的汉字建立代码 标位于某行时 ,这一行前面的行的数据不动, 而 库 ,这样可以提高软件的可扩展性。例如输入 后面行的数据赋值到下一行当中。同理删除行 “审核人员”名称 ,如果把名字固化到程序中 ,当 的操作是将当前行的值被它下面的行的数据所 人员发生改变时 ,程序势必要改动 ,有效的处理 取代 ,后面的所有行的数据上移。具体实现如 手段应该建立人员库 ,然后在输入该信息时, 将 下 :
( p rocedure T Fo r ml . BitBt nlClick Sender :
) TObject ;
27 卷应用科技第 ?12 ?
var il :lo ngi nt ; 标所在的 行 , 可 以 i ,j :i nteger ; 由 Onse2 begi n lectcell 事 il : = st ri nggridl . row ; 件返回
i : = 0 ; / / 定义要选
st ri nggridl . rowco unt : = st ri nggridl . myRect . L ef t : = col ; 择的矩形区
域的开始和 rowco unt + l ;
结 束 时 的 FO R i : = st ri nggridl . RowCo unt DO WN2 行、列值 TO il do begi n
fo r j : = l to st ri nggridl . colco unt - l do
if i = il t hen myRect . Top : = row ; myRect . Right : = col ; ”st ri nggridl . cells j ,i : = “
myRect . Bot to m : = row ; else
st ri nggridl . cells j ,i : = st ri n ggridl . st ri nggridl . selectio n : = myRect ; cells j ,i - l ; end ;
end ; end ; 以上过程可以作为 1 个通用的子过程 , 用 end ;
户可以根据需要 ,加入边界值的判定条件 ,如到 此过程可以作为一个公用过程 , 在各个模
最后一行返回到下一列的第一行或者到最后一 块中调用。
列返回到下一行的第一列等。 删除行的过程 , 与上述过程类似 , 不再赘
述。
3 () 1 . 4 通过回车键 或 TAB 键实现录入单元的 结论
() 行 列间移动 Delp hi 是一个全方位的 Wi ndows 开发工
对于多条记录的录入程序 , 我们往往习惯 具 ,也是很优秀的数据库前端应用程序的开发 于用回车键或 TAB 键结束本单元格的数据输 工具。它的最大的优点在于它的功能强大以及
( ) 入 ,转移到下一行 或者列的单元格 , Tst ri ng2 开发使用的灵活性。Tst ri nggrid 控件的使用灵 grid 并没有提供这样的功能 , 它缺省的方式是 活性非常好 ,可以利用它的丰富的属性、函数和 用四个光标键在行、列中移动 ,这样会感觉很不 过程来实现自己的目标 ,除了以上的一些常用 习惯。因此可以自己做一个过程或函数来实现 问题以外 ,值得我们去挖掘的东西还有很多, 比 光标的移动 ,实现过程如下 : 如如何实现在 Tst ri nggrid 中的单元格中插入
图标等问题。用过 Tst ri nggrid 后 , 就会觉得该
控件好就好在可以自己来控制它。
以上介绍的方法均是在 Wi ndows98 + Del2 p rocedure T Fo r ml . St ri ng Gridl KeyDow n
p hi5 . 0 环境下完成的。 ( Sender : TObject ;var Key : Wo rd ;
) Shif t : TShif t State;
Var myRect : T GridRect ; 参考文献begi n 1 张健沛. 数据库系统 Delp hi 4 . 0 及其应用 M . 北if key = 13 t hen begi n / / 实现回车键京 :中国水利水电出版社 ,1999 .
的行移动 王珊. 数据库技术与联机分析处理M . 北京 : 科学 2 出版社 ,1999 . row : = row + 1 ; / / row 是当前光