表格控件的一些属性

作者在 2009-09-06 15:15:10 发布以下内容

写下一些东东,备忘

AddProperty 方法 向一个对象添加一个新属性。

 Object.AddProperty(cPropertyName [, eNewValue [, nVisibility [, cDescription]]])
 表格控件的一些属性 
 thisform.Grid1.RowHeight = this.Value  &&RowHeight属性指定表格的行高(列标头除外)
 this.BackColor = temp
*将Labe2的背景色设置成与表格线相同的颜色
 thisform.Grid1.GridLineWidth = this.Value
*将表格线的宽度设置成文本框中输入的值
 thisform.Grid1.GridLines = 3
*将GridLines属性设置为3
*显示水平和垂直表格线
 thisform.Grid1.ScrollBars = 3
*显示水平和垂直滚动条
 temp = GETCOLOR(0)
*显示颜色对话框并将在该对话框中选择的颜色保存在temp中
 n=CEILING(n)
*向上取整
记事本(三)(2009-08-20 16:57)

scatter 命令
从当前记录中复制数据到一组内存变量、一个数组或一个对象。
SCATTER [FIELDS FieldNameList | FIELDS LIKE Skeleton
   | FIELDS EXCEPT Skeleton] [MEMO] [BLANK]
   TO ArrayName | MEMVAR
   | NAME ObjectName [ADDITIVE]
示例 1
该例用 SCATTER 创建一组基于 test 表中字段的内存变量。然后为每个字段赋值并向表中添加一条新的空记录。使用 GATHER 命令将数据复制到表中。
CREATE TABLE Test FREE (Object C(10), Color C(16), SqFt n(6,2))
SCATTER MEMVAR BLANK  &&创建一个内存变量,如果MEMVAR后有字段,则仅包含字段
m.Object='Box'  &&为内存变量赋值
m.Color='Red'
m.SqFt=12.5
APPEND BLANK
GATHER MEMVAR&&从内存变量中复制记录
BROWSE
示例 2
该例用带有 NAME 子句的 SCATTER 命令,创建一个带有基于表中字段的属性的对象。然后为对象的属性赋值,并向表中添加一条新的空白记录。使用带有 NAME 子句的 GATHER 命令,将数据复制到表的新记录中。
CREATE TABLE Test FREE (Object C

GDI+ FFC图形类(2009-08-15 17:15)

第一部分
原著: Walter Nicholls
翻译: YAUR
一套新的GDI+ FFC图形类将随着vfp9.0最终版一起发布,不过你可以去VFP的官方网站上(http://msdn.com/vfoxpro)的下载说明中先睹为快。这套GDI+类预计在8月上旬或之后不久就可以下载了,它可以在vfp9.0 beta版中使用,下载网址还是上边提到的那个,在这篇文章中,Walter Nicholls 介绍了本系列(共四部分)中的第一部分:直接在vfp表单上绘图。

在 vfp9中最令人期待的和最让人兴奋的新特点之一就是增强的报表引擎,尽管这个报表引擎有众多令人激动的特点,不过,最让我兴奋的是我们可以通过编写用户插件来修改和扩展报表中类目的外观
图1
有两种方法可以做到这些,其中之一是使用ReportListener类,它提供了一种可以钩住(或译关联监控 hook)报表产生和显示过程的方法。另外一个则是直接访问用来显示报表的GDI+图形介面。
就像一份额外的红利一样,vfp9.0中的对ReportListener类的一些支持改进使得在其他地方也可以使用GDI+,做一个详细的计划,你也可以写出一个单独的可以在表单、报表上绘图、甚至将图片存为档、存入磁片的GDI类。
VFP

GDI+你应该不会陌生吧,然而,在VFP里要使用这一技术,可不是一件容易的事,你得学习一大堆API函数。或许,一想到这,你已经望而却步了。不过,从现在起,这一技术不再是豪门旺族的专宠了,我们每一位Foxer都可以让它成为我们得心应手的好工具了。下面就跟我一起来领略它的风采吧。
在9.0的版本里,有个叫_GDIplus的类,它位于VFP的安装目录下:Home(1) + “FFC\_GDIplus.vcx”,是的,这是API函数的封装类,既然已经是封装的类了,那么,我们就不用关心底层的API了,所心,我们完全可以像用普通的VFP类一样,就这么方便:
这个类里有很多成员,但我们不必奢望太多,只须一部分,一部分就足够了。

有一个流程我们必须要搞清楚:倘若我们想手工画一幅画的话,首先得确定这幅的大小吧,这个大小我们可以用pgBitmap对象来设定,如果你是想在一幅已有的画上锦上添花的话,那就用gpImage对象,注意,这仅仅是一个预步骤,确定绘图尺寸。好,现在尺寸有了,那就跟据这个尺寸来弄张纸吧,要不然我们往哪儿画呢。说曹操曹操到,Gpgraphics对象就可以为你弄一张你想要的画布,大小跟你想像的一样。接下来的工作就是画笔和颜料了,按顺序,先确定你的颜料吧,g

 nhandle=sqlstringconnect('driver=sql server;server=服务器名;uid=sa;pwd=z密码;database=数据库名')
 =sqltables(nhandle,'table','tt') *返回数据库中的表信息到临时表tt中
 SQLEXEC(nhandle,'select * from gg','mm')  *向连接送SQL语句,将结果到mm中
 **********************************************
 SQLEXEC( ) 函数 发送一个处理过的 SQL 语句到数据源。 
 SQLEXEC(nStatementHandle [, cSQLCommand [, cCursorName[, aCountInfo]]])
nStatementHandle     指定由 SQLCONNECT( ) 函数返回的、要发送到到数据源的语句句柄。
cSQLCommand 指定送入数据源的 SQL 语句。
cCursorName    指定 Visual FoxPro 临时表的名称,结果集合将送入该临时表中
aCountInfo
记事本(二)(2009-08-10 16:42)

SEEK( ) 函数
在一个已建立索引的表中搜索一个记录第一次出现的位置,该记录的索引关键字与指定表达式相匹配。发出 SEEK( ) 等价

于连续发出 SEEK 和 FOUND( )。
下例中使用 SET DEFAULT 改变 Visual FoxPro 默认目录到启动目录。使用 MKDIR 创建一个名为 mytestdir 的新目录,

并用 CHDIR 转换到 mytestdir 目录。GETDIR( ) 在选择目录(Select Directory)对话框中显示目录结构。您可以再使用

SET DEFAULT 移动位置回到启动目录,RMDIR 删除新建的目录,GETDIR( ) 显示初始目录结构。

% 操作符   返回两个数值表达式相除的余数
RAT( ) 函数     返回一个字符表达式或备注字段在另一个字符表达式或备注字段内最后(最右边)出现的位置。

ControlCount 属性  指定容器类对象中控件的数量。设计时不可用;运行时只读。
Object.ControlCount 
 Controls 属性   用来访问容器类对象中控件的数组。运行时可用。
ContainerObject.Controls(Index).Property[ = Expr]
 

 AFIELDS( ArrayName [, nWorkArea | cTableAlias ] )
 获取指定工作区中的表结构信息并存贮到一个数组中,通过表别名,或者当前选定的工作区指定,并且返回表的字段数。
ArrayName
指定数组名,将表结构信息存放在这个数组中。如果指定的数组不存在,Visual FoxPro 将自动创建此数组。如果数组存在,但大小不足以包含 AFIELDS( ) 函数返回的所有信息,Visual FoxPro 将自动增加数组大小,使数组能容纳所有信息。
nWorkArea
指定表所在的工作区。
cTableAlias
指定表的别名。如果忽略 nWorkAreacTableAliasAFIELDS( ) 将获取当前选定的工作区中表的信息。

VisualFoxPro字符函数(2009-08-04 11:07)

ALLTRIM().删除指定字符表达式的前后空格符

ASC()返回字符表达式中最左边字符的ANSI值

AT()返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置

AT_C()返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置

ATC()返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置

ATCC()返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的位置

ADDBS()如果必要,向一个路径表达式添加一个反斜杠

ATCLINE()返回一个字符表达式或备注字段在另一个字符表达式或备注字段中第一次出现的行号

ATLINE()返回一个字符表达式或备注字段在另一个字符表达式或备注字段中首次出现的行号

BETWEEN()判断一个表达式的值是否在另外两个相同数据类型的表达式的值之间

ACLASS()将一个对象的类名和祖先类名存放到一个数组中

ADLLS()返回一个包含已用DECLAREDLL载入的函数名

ADDPROPERTY()在运行时,为对象添加一个新属性

AERROR()创建一个内存变量数组,数组中包含最近的VisualFoxPro、OLE或ODBC的错误信息

AEVENTS()返回当前事件绑定数

AGETCLASS()、在'打开'对话框中显示类库,并且创建一个包含该类库和所选类名称的数组

AINSTANCE()将一个类的实例存放到一个内存变量数组中,并且返回数组中存放的实例个数

AMEMBERS()将一个对象的属性名、过程名和成员对象存入内存变量数组

AMOUSEOBJ()创建一个数组,其中包含有关鼠标指针位置以及鼠标指针下对象的信息

ASTACKINFO()返回一个包含当前运行程序文件,应用程序或COM服务程序中的对象的信息的数组

AVCXCLASSES()将

*连接到一个ACCESS数据库
CLOSE ALL
myfile=GETFILE('MDB')
*建立一个连接
nconnhandle=SQLSTRINGCONNECT('driver=microsoft access driver (*.mdb);dbq='+myfile)
result=SQLTABLES(nconnhandle,'TABLE')  &&要知道那些表包含在MDB文件中,得到一个临时表
&&指定结果集发送到 Visual FoxPro 临时表的名称。如果不包含临时表名,Visual FoxPro 将使用默认名“SQLRESULT”。
CREATE DATABASE mynew         &&创建一个新数据库
SELECT sqlresult      &&选择临时表
 SCAN
csqlcommand='select * from ['+alltrim(sqlresult.table_name)+']'
ngetdata=SQLEXEC(nconnhandle,csqlcommand,'newdata')&&发送一个处理过的 SQL 语句到数据源
IF ngetdata>0
cnewname=strtran(alltrim(sqlresult.table_name),'','_')&&将含有空格的长文件名替换为_连接
*我感觉上面的命令好像没起作用?
SELECT newdata
COPY TO (cnewname) DATABASE mynew

Public goForm
goForm = Createobject('MiForm')
goForm.Show(1)
Return

Define Class MiForm As Form
DoCreate = .T.
AutoCenter = .T.
Caption = '绘制多边形 in VFP 9.0 [ZT]'
Name = 'MiForm'
*-- 三角形
Add Object shpTriangulo As Shape With ;
TOP = 36, ;
LEFT = 24, ;
HEIGHT = 144, ;
WIDTH = 144, ;
BACKCOLOR = Rgb(255,0,0), ;
POLYPOINTS = 'This.aTri', ;
NAME = 'shpTriangulo'
*-- 八角形
Add Object shpOctogono As Shape With ;
TOP = 36, ;
LEFT = 204, ;
HEIGHT = 144, ;
WIDTH = 144, ;
BACKCOLOR = Rgb(0,0,255), ;
POLYPOINTS = 'This.aOct', ;
NAME = 'shpOctogono'
Procedure shpTriangulo.Init
This.AddProperty('aTri[3,2]')
This.aTri[1,1]= 50
This.aTri[1,2]= 0
This.aTri[2,1]= 100
This.aTri[2,2]= 100
This.aTri[3,1]= 0
This.aTri[3,2]= 100
Endproc
Procedure shpOctogono.Init
This.AddProper

默认分类 | 阅读 2638 次
文章评论,共0条
游客请输入验证码
文章归档