主题:  寒秋编写的Grid控件,用来在Authorware中实现Gr

冷月寒

职务:普通成员
等级:1
金币:0.0
发贴:13
注册:2007/8/10 10:41:29
#12007/12/23 19:26:20
寒秋编写的Grid控件,用来在Authorware中实现Grid的功能。
GridDll.dll是一个动态链接库,可以生成表格,从而在表格里进行数据的输入、修改添加、删除等功能。具体使用的例子请看压缩里的源程序。GridDll.dll里包含了以下的函数:
1、Hq_CloseGrid (GridHwnd )
--入口参数:long
--出口参数:long
--函数说明:关闭创建的Grid对象
--GridHwnd:创建的Grid句柄
--在退出时一定要使用该函数来清除创建的Grid,否则Authorware退出时会提示出错。

2、Hq_CreateGrid(windowhandle,datafile,xstar,ystar,xend,yend)
--说明:用来创建一个Grid对象
--入口参数:long,string,long,long,long,long
--出口参数:long
--windowhandle: 为Authorware中的窗口句柄,不能改变
--Datafile: 要打开的数据文件,如果为空,则表示用数据来创建Grid
--xstar: 起点的X坐标
--ystar: 起点的Y坐标
--xend: 终点的X坐标
--yend: 终点的Y坐标
--如果创建成功,则返回一个不为0的句柄。

3、Hq_GetCurrentCol()
--函数说明:返回当前选定的列
--入口参数:void
--出口参数:long

4、Hq_GetCurrentData (Col,Row)
--函数说明:获取指定的单元格的数据
--入口参数:long,long
--出口参数:Long
--Col:表示行
--Row:表示列
--必须使用PeekString(offset,0)来获取正确的字符串
5、Hq_GetCurrentRow()
--函数说明:返回当前选定的行
--入口参数:Void
--出口参数:Long

6、Hq_GetMachine()
--函数说明:返回GridDll在当前使用的机子上的机器码
--入口参数:Void
--出口参数:Long
--必须使用PeekString(offset,0)来获取正确的字符串
--说明:如果没有注册,在使用创建Grid时,会弹出一个对话框,会提示机器码是多少。

7、Hq_HideGrid(GridHwnd) --函数说明:用来隐藏创建的Grid
--入口参数:Long
--出口参数:Long
--GridHwnd:表示创建的Grid的句柄

8、Hq_RegisterGrid(UserName,Serial)
--函数说明:用来注册Griddll文件
--入口参数:String,String
--出口参数:Long
--UserName:申请注册的用户名
--Serial:注册码 --说明:不同的机子,注册码是不一样的,不能通用,如果注册成功,返回为1,否则为0。

9、Hq_SaveGridData (SaveFile)
--说明: 保存Grid中的数据到指定的文件
--入口参数:String
--出口参数:Long
--SaveFile:要保存数据的文件名

10、Hq_SetDataToGrid (Row,Col,DataString)
--函数说明:用来设置指定的单元格中的数据
--入口参数:Long,Long,String
--出口参数:Long
--Row:指定的行
--Col:指定的列
--DataString:指定的数据

11、Hq_SetGridAllow(InsertAllow,DeleteAllow,EditAllow,SortAllow )
--函数说明:用来设置Grid的一些相关参数
--入口参数:Long,Long,Long,Long
--出口参数:Long
--InsertAllow:如果为1,则允许在当前位置按Insert键插入一行空的数据,为0则禁止插入一行空的数据
--DeleteAllow:如果为1,则允许按Delete键删除当前的一行数据,为0则禁止删除数据
--EditAllow:如果为1,则允许更改替换表格头的标题内容,为0则禁止更改标题
--SortAllow:如果为1 ,则允许对当前列的数据进行排序,为0则禁止排序。排序只是按升序排序。
--说明:如果是未注册的GridDll文件,则当前函数的所有设置不起作用。

12、Hq_SetGridFont(FontName,FontSize )
--函数说明:用来设置Grid单元格的字体
--入口参数:String,Long
--出口参数:Long
--FontName:字体名称
--FontSize:字体大小
--不过好像设置的字体不起作用,字号有起作用,这个问题还有待解决

13、Hq_SetGridTitle (Align,Fieldtype,Editallow,CharLength,UnitLength,Title,Unit)
--函数说明:用来设置指定的列的表格头的标题和列的一些设置
--入口参数:String,String,Long,Long,Long,String,Long
--出口参数:Long
--Align:当前列的对齐方式,有以下几个选项
----L:靠左
----R:靠右
----C:居中
--Fieldtype:当前列的数据类型,可以为以下几种类型:
--T:文本类型
--W:所有数字
--C:货币类型
--1:表示留有1位小数点
--2:表示留有2位小数点
--3:表示留有3位小数点
--4:表示留有4位小数点
--Editallow:表示是否允许编辑,为1允许,为0则禁止
--CharLength:表示当前列允许的字符串长度
--UnitLength:表示当前列的显示字符的长度
--Title:表示当前列的表头的标题内容
--Unit:表示是第几列

14、Hq_SetGridUnit ( RowCount, ColCount)
--函数说明:设置Grid的总行数和总列数
--入口参数:Long,Long
--出口参数:Long
--RowCount:总行数
--ColCount:总列数

15、Hq_SetGridUnitData(Row,Col ,Unitdata)
--入口参数:Long,Long,String
--出口参数:Long
--函数说明:用来指定单元格中的数据
--Row:表示指定的行
--Col:表示指定的列
--UnitData:表示指定的单元格中的数据

16、Hq_SetTitleFont(FontName,FontSize )
--入口参数:String,Long
--出口参数:Long
--函数说明:用来设置表头的字体
--FontName:字体名称
--FontSize:字体大小
--不过好像设置的字体不起作用,字号有起作用,这个问题还有待解决

17、Hq_ShowGrid(GridHwnd)
--函数说明:用来显示创建的Grid
--入口参数:Long
--出口参数:Long
--GridHwnd:表示创建的Grid的句柄

说明:该控件目前是在测试阶段,因此允许有下载使用的网友可以免费送一个注册码。没有注册该控件,只是在创建时会弹出一个对话框,不能进行编辑、修改、排序、添加、删除的功能,至于显示或获取数据、保存数据等功能是完全可以使用的。保存的文件为Griddll.dll文件创建的格式,不能随便编辑。至于扩展名可以是任意的。在保存数据方面,如果数据比较多,速度会比较慢。不知道目前该控件允许是多少的Row*多少的Col。如果不是使用GridDll.dll创建的文件,程序则不能使用从文件中导入数据。

单击表格中的某个单元格,则是选定一个单元格,如果双击鼠标左键,则是进行编辑,在编辑状态下可以输入任意的字符。在非编辑状态下,按Insert键是在当前位置插入一行空的数据;按Delete键则是删除当前选定的整行的数据。 完全兼容光标控件。有提供滚动栏,在垂直滚动栏上,所有的事件都可以正常响应;但是在水平滚动样上,相同的代码编写,却不能全部正常响应。目前还找不到问题所在。(当然,搞定会传一个新的文件上去。)

在编写该控件时,完全采用了最底层的Window事件来编写,因此在很多方面还是不如人意的,(毕竟习惯了可视化的编程),倘若在使用中,有什么问题或好的建议,可以在此贴后面留言。

这是运行效果图:

图片如下:


这是源程序,包含示范程序和Griddll.dll文件,以及一个用GridDll.dll创建的Test.dat文件。

相关文件(rar):点这儿打开

编辑历史:[此帖最近一次被 lengyuehan 编辑过(编辑时间:2007-12-23 19:34:27)]


冷月寒

职务:普通成员
等级:1
金币:0.0
发贴:13
注册:2007/8/10 10:41:29
#22007/12/24 13:52:00
对发现的一些问题进行了修改,并增加了一点功能。
1、修正了不能自定义字体的问题。允许对标题和Grid中的单元格字体进行设置。
2、修正了原来在创建Grid时会有一个背景问题,现在已经让它透明显示。
3、修正了原来水平滚动条存在的位置。有时会突然出现没有滚动条的状况,按住水平滚动条的空白位置也能进行相关的滚动操作了。
4、增加了设置单元格外框的颜色、宽度的设置。
函数为:Hq_SetUnitColor(color,width)
--函数说明:设置单元格中输入框的边框颜色
--入口参数:Long,long
--出口参数:Long
--color:边框颜色
--widht:边框宽度
5、增加了在创建Grid时,设置Grid的背景颜色和字体的颜色。
即在原来的Hq_CreateGrid函数后面增加了Gridcolor和Textcolor两个参数。
这是运行效果图:

图片如下:

这是修改后的文件和示范程序:

相关文件(rar):点这儿打开