visualfoxpr80程序员手册.docx

上传人:b****5 文档编号:3903015 上传时间:2022-11-26 格式:DOCX 页数:29 大小:33.80KB
下载 相关 举报
visualfoxpr80程序员手册.docx_第1页
第1页 / 共29页
visualfoxpr80程序员手册.docx_第2页
第2页 / 共29页
visualfoxpr80程序员手册.docx_第3页
第3页 / 共29页
visualfoxpr80程序员手册.docx_第4页
第4页 / 共29页
visualfoxpr80程序员手册.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

visualfoxpr80程序员手册.docx

《visualfoxpr80程序员手册.docx》由会员分享,可在线阅读,更多相关《visualfoxpr80程序员手册.docx(29页珍藏版)》请在冰豆网上搜索。

visualfoxpr80程序员手册.docx

visualfoxpr80程序员手册

&

执行宏替换。

&VarName[.cExpression]

参数

&VarName

指定宏替换中引用的内存变量名或数组元素名。

请不要加上用于区分内存变量与字段的前缀M.,否则将产生语法错误。

宏的长度不要超过VisualFoxPro中允许的最大语句长度。

在宏替换中,变量不能递归引用其自身。

例如,下列语句将产生错误信息:

STORE'&gcX'TOgcX

?

&gcX

出现在DOWHILE、FOR和SCAN中的宏替换语句只在循环开始时计算值,在后续的循环中则不再计算值。

因此在循环内改变内存变量和数组元素的值对宏替换都无效。

.cExpression

句点分隔符(.)和cExpression选项可用来在宏后面追加额外的字符。

使用.cExpression附加在宏后面的cExpression也可以是一个宏。

如果cExpression是一个属性名,包括一个额外的点号(cExpression..PropertyName)。

备注

宏替换把内存变量和数组元素中的内容当作原义字符串。

当连字符(&)位于字符型内存变量或数组元素前面时,内存变量和数组元素的内容将替代宏引用。

宏替代可用在任何接受原义字符串的命令和函数中。

提示请尽可能使用名称表达式来取代宏替换。

名称表达式与宏替换作用相似,但是,名称表达式限于传递作为名称的字符串。

当命令或函数接受名称(文件名、窗口名、菜单名等)时,使用名称表达式的处理速度要明显快得多。

有关名称表达式的详细内容,请参阅语言概述。

下列代码可以正确执行:

STORE'customer'TOgcTableName

STORE'company'TOgcTagName

USE&gcTableNameORDER&gcTagName

但是可以使用名称表达式代替:

USE(gcTableName)ORDER(gcTagName)

宏替换对于替换命令中的关键字是很有用的。

在下面的示例中,把TALK设置保存在内存变量中,以便后面的程序能够恢复它。

TALK的原始设置使用宏替换恢复。

示例

STORESET('TALK')TOgcSaveTalk

SETTALKOFF

*

*额外的程序代码

*

SETTALK&gcSaveTalk&&恢复原始的TALK设置

&&

标明程序文件中非执行的内部注释的开始。

&&[Comments]

参数

Comments

标明其后是内部注释。

例如:

STORE(20*12)TOgnPayments&&20年每月付款

通过插入内部注释来标明IF...ENDIF、DO和FOR...ENDFOR等结构化命令的结束,能够大大地提高程序的可读性。

备注

在注释行的后面加入分号(;),表明下一行也是注释行。

不能在命令行续行的分号后面加入&&和注释。

示例

NOTE初始化页号;

变量。

STORE1tognPageNum

*设置循环

DOWHILEgnPageNum<=25&&循环25次

gnPageNum=gnPageNum+1

ENDDO&&DOWHILEgnPageNum<=25

*

标明程序文件中非执行的注释行的开始。

*[Comments]

参数

Comments

给出注释行中的注释,例如:

*这是一个注释

备注

在注释行的后面加入分号(;),表明下一行也是注释行。

示例

*初始化页号变量。

STORE1tognPageNum

*设置循环

DOWHILEgnPageNum<=25&&循环25次

gnPageNum=gnPageNum+1

ENDDO&&DOWHILEgnPageNum<=25

?

|?

?

计算表达式的值,并输出计算结果。

?

|?

?

Expression1[PICTUREcFormatCodes]|[FUNCTIONcFormatCodes]|

[VnWidth][ATnColumn]

[FONTcFontName[,nFontSize][STYLEcFontStyle|Expression2]]

[,Expression3]...

参数

?

Expression1

计算表达式Expression1的值,然后先输出一个回车和换行符,再输出计算结果。

计算结果显示在VisualFoxPro主窗口或者活动的用户自定义窗口的下一行,并且如果函数代码cFormatCodes或系统内存变量_ALIGNMENT没有指定其他值,该结果则打印在左页边距中。

如果省略了表达式,则显示或打印一个空行。

当包含多个表达式时,表达式结果之间将插入一个空格。

?

?

Expression1

计算表达式Expression1的值,并把结果显示在VisualFoxPro主窗口、活动的用户定义窗口或者打印机当前行的当前位置上。

输出计算结果前不回车换行。

PICTUREcFormatCodes

指定显示表达式Expression1计算结果的图片格式。

cFormatCodes可以包括函数代码、图片代码或者两者的组合。

可以在format属性和inputmask属性中使用相同的代码。

函数代码影响结果输出的总体格式,图片代码则只对结果中的单个字符有影响。

如果cFormatCodes中使用了函数代码,那么函数代码必须放在图片之前,并且代码之前必须加@ 

符号。

没有内嵌空格的多重函数代码可以紧接着放在@之后。

最后一个函数代码之后必须有一个或多个空格。

空格标志着函数代码的结束和图片代码的开始。

FUNCTIONcFormatCodes

指定在?

和?

?

输出中的函数代码。

如果包括函数子句,则不要把@放在函数代码之前。

当PICTURE中包括函数代码时,函数代码前必须使用@。

VnWidth

指定一种特殊函数代码,能使字符表达式的结果在有限列中垂直伸展。

nWidth指定输出的列数。

?

'这是一个V功能码如何工作的示例。

';

FUNCTION'V10'

ATnColumn

指定显示结果的列数。

这个选项使您能够在指定的若干列中对齐输出结果,以便创建一个表。

数值表达式nColumn可以是返回数值的用户自定义函数。

FONTcFontName[,nFontSize]

指定用于?

|?

?

输出的字体。

cFontName指定字体名称,nFontSize指定字体的大小。

例如,下列命令用16磅的Courier字体显示系统日期:

?

DATE()FONT'Courier',16

如果给出FONT子句但是没有指定字体大小nFontSize,此时字体大小为10磅。

如果省略了FONT子句,并且?

|?

?

的输出结果放在VisualFoxPro主窗口中,则输出的字体为VisualFoxPro主窗口字体。

如果省略了FONT子句,并且?

|?

?

的输出结果放在用户自定义窗口中,则输出的字体为用户自定义窗口字体。

∙如果找不到指定的字体,则用具有相似字体特性的字体代替。

STYLEcFontStyle

指定用于?

|?

?

输出的字体样式。

如果省略STYLE子句,则使用“正常”字体样式。

如果找不到指定的字体,则用具有相似字体特性的字体代替。

注意   当您使用STYLE子句指定字体样式时,必须包含有FONT子句。

可以用cFontStyle指定的字体样式有:

字符

字体样式

B

粗体

I

斜体

N

正常

O

轮廓

Q

不透明

S

阴影

-

删除线

T

透明

U

下划线

可以使用多个字符的组合来指定字体样式。

例如,下面的命令用Courier粗斜体来显示系统日期:

?

DATE()FONT'COURIER'STYLE'BI'

备注

?

和?

?

计算表达式的值,并把计算结果传送到VisualFoxPro主窗口、活动的用户自定义窗口或者打印机上。

如果SETPRINTER是ON,则表达式的计算结果送到打印机和VisualFoxPro主窗口或活动的用户自定义窗口上。

如果SETPRINTER为ON,但SETCONSOLE为OFF,表达式计算结果则只送到打印机。

示例

?

15*(10+10)

?

'欢迎使用'PICTURE'@!

'

?

?

'VisualFoxPro'

?

?

?

把结果直接输出到打印机。

?

?

?

cExpression

参数

cExpression

指定要输出到打印机的字符。

备注

三个问号不通过打印机驱动程序而直接把cExpression的内容传送到打印机上。

cExpression必须包含有效的打印机代码。

打印机控制代码能够重置打印机,改变打印样式和大小,还能启用或取消黑体打印等。

这些代码可由两种字符的任意组合来组成,这两种字符是可打印字符和正在使用的打印机特有的非打印字符。

将控制代码发送到打印机的方法有很多:

∙使用+把CHR()和引号括起的字符串合并到一起,然后直接把ASCII字符串传送给打印机。

∙使用引号把包含打印代码的字符串或ASCII字符串送入打印机。

∙在开始打印前和打印结束后,可使用_PSCODE和_PECODE系统内存变量把代码传送到打印机上。

有关详细内容,请参阅_PSCODE和_PECODE。

打印机控制代码随打印机的不同而不同。

有关打印控制代码信息的最好来源是打印机的随机手册。

@……CLASS

创建可以用READ激活的控件或对象。

@nRow,nColumnCLASSClassNameNAMEObjectName

参数

@nRow,nColumn

指定控件或对象的位置。

控件或对象的宽度和高度由类的默认宽度和高度值确定。

行从上向下编号。

VisualFoxPro主窗口或用户自定义窗口中的第一行编号为0。

VisualFoxPro 

的第0行就是紧接着VisualFoxPro系统菜单栏的那一行。

列从左向右编号。

VisualFoxPro主窗口或用户自定义窗口中的第一列编号为0。

当把一个对象或控件添加到用户自定义窗口中时,行和列坐标与用户自定义窗口,而不是VisualFoxPro 主窗口相关。

在VisualFoxPro中,VisualFoxPro主窗口或用户自定义窗口中的某一位置,由VisualFoxPro 

主窗口或用户自定义窗口的字体决定。

大多数字体可以用不同大小显示。

有一些字体能够按比例留间隔。

行的高度与当前字体的高度一致,列的宽度则与当前字体字符的平均宽度一致。

在VisualFoxPro中,可以使用小数指定控件或对象的行、列坐标。

CLASSClassName

指定控件或对象的类。

ClassName可以是VisualFoxPro的一个基类,也可以是用户自定义类。

下表列出了ClassName可指定的VisualFoxPro基类。

基类名

CheckBox控件

Line控件

Column对象

ListBox控件

ComboBox控件

OLE容器控件

CommandButton控件

OLE绑定型控件

CommandGroup控件

OptionButton控件

Container对象

OptionGroup控件

Control对象

Page对象

Cursor对象

PageFrame控件

Custom对象

Relation对象

DataEnvironment对象

Separator对象

EditBox控件

Shape控件

Grid控件

spinner控件

Header对象

TextBox控件

Image控件

Timer控件

Label控件

 

NAMEObjectName

指定对象引用内存变量的名称,NAME子句可以创建此变量。

控件或对象的面向对象属性、事件和方法都可以通过引用这个内存变量来操纵。

备注

@...CLASS提供了一个捷径,能把FoxPro早期版本中创建的应用程序移植到更受欢迎的VisualFoxPro面向对象编程方法中来。

有关与FoxPro2.x控件向后兼容性的详细内容,请参阅控件和对象。

有关VisualFoxPro中面向对象编程的详细内容,请参阅面对对象编程。

示例

下面的例子说明了如何把@...CLASS同早期FoxPro版本中的编程技术结合起来使用(在这个例子中,使用READ激活控件)。

@...CLASS创建了一个文本框。

这个文本框的属性可以用VisualFoxPro面向对象的编程技术来改变。

使用ONKEYLABEL,可以在按CTRL+I时显示“窗口颜色”对话框。

用@...CLASS命令把文本框添加到VisualFoxPro 主窗口中,然后用READ激活文本框。

CLEAR

ONKeyLabelCTRL+I_SCREEN.PageFrame1.Page1.goFirstName.BackColor;

=GETCOLOR()

@2,2SAY'按Ctrl+I修改背景色'

@4,2CLASSTextBoxNAMEgoFirstName

READ

CLEAR

@……CLEARTO

清除VisualFoxPro主窗口或用户自定义窗口的部分区域。

@nRow1,nColumn1[CLEAR|CLEARTOnRow2,nColumn2]

参数

@nRow1,nColumn1CLEAR

清除一长方形区域。

该长方形区域的左上角是第nRow1行第nColumn1列,右下角是VisualFoxPro主窗口或用户自定义窗口的右下角。

CLEARTOnRow2,nColumn2

清除一长方形区域。

该长方形区域左上角是第nRow1行第nColumn1列,右下角是第nRow2行第nColumn2列。

备注

如果省略CLEAR或CLEARTO,VisualFoxPro将清除第nRow1行中从nColumn1列开始到行尾的内容。

示例

以下示例清除屏幕上VisualFoxPro主窗口或用户自定义窗口从第二行开始到窗口右下角的区域。

@2,0CLEAR

以下示例清除从第10行第0列开始一直到第20行20列的长方形区域。

@10,0CLEARTO20,20

 

@……FILL

更改屏幕中某区域内已有文本的颜色。

@nRow1,nColumn1FILLTOnRow2,

nColumn2[ColorSchemenSchemeNumber|COLORColorPairList]

参数

@nRow1,nColumn1

指定要更改颜色区域的左上角。

FILLTOnRow2,nColumn2

指定要更改颜色区域的右下角。

ColorSchemenSchemeNumber

指定区域的颜色。

只有指定配色方案中的第一个颜色对决定了区域的颜色。

COLORColorPairList

指定区域的颜色。

只有指定颜色对列表中第一个颜色对决定了区域的颜色。

如果省略COLORSCHEME或COLOR子句,则清除指定的长方形区域。

清除一长方形区域也可使用@...CLEAR命令。

备注

这个命令用来更改VisualFoxPro主窗口或活动的用户自定义窗口中长方形区域的文本颜色。

使用该命令,只能为正在显示的文本设置前景和背景颜色属性。

所有在使用@...FILL命令之后输出到该指定区域中的文本,仍以屏幕或窗口默认的颜色显示。

示例

以下示例先清除VisualFoxPro主窗口,然后用彩色填充一个区域。

ACTIVATESCREEN

CLEAR

@4,1FILLTO10,8COLORGR+/B

 

@……TO……SCROLL

将VisualFoxPro主窗口或用户自定义窗口的某个区域向上、下、左、右移动。

@nRow1,nColumn1TOnRow2,nColumn2SCROLL

[UP|DOWN|LEFT|RIGHT][BYnMoveAmount]

参数

@nRow1,nColumn1TOnRow2,nColumn2SCROLL

移动矩形区域,该区域左上角坐标为nRow1,nColumn1,右下角坐标为nRow2,nColumn2。

UP|DOWN|LEFT|RIGHT

指定矩形区域的移动方向。

若省略该子句,区域将向上移动。

BYnMoveAmount

指定区域移过多少行或列。

若省略BYnMoveAmount参数,则区域移动一行或一列。

\,\\

输出文本行。

\TextLine

或者

\\TextLine

参数

\TextLine

如果使用\,文本行输出时先输出一个回车符和一个换行符。

\\TextLine

如果使用\\,文本行输出前不回车换行。

\和\\前面的空格不包含在输出行中,但是\和\\之后的空格包含在输出行中。

可以在文本行中嵌套一个表达式。

如果表达式放在文本合并分隔符(默认情况下为<<>>)之内,并且SETTEXTMERGE设置为ON,则计算表达式的值,并将结果以文本形式输出。

备注

\和\\简化了VisualFoxPro中的文本合并过程。

文本合并允许把文本输出到一个文件,并以此创建套用信函或程序。

使用\和\\可以把文本行输出到当前的文本合并输出文件或屏幕。

SETTEXTMERGE用来指定文本合并输出文件。

如果没有为文本合并指定文件,那么文本行将只输出到VisualFoxPro的主窗口中,或者输出到活动的用户自定义输出窗口中。

SETTEXTMERGENOSHOW用来禁止输出到VisualFoxPro主窗口,或者输出到活动的用户自定义窗口。

示例

CLOSEDATABASES

OPENDATABASE(HOME

(2)+'Data\testdata')

USECustomer&&打开customer表

SETTEXTMERGEON

SETTEXTMERGETOletter.txt

\<>,<>

\\<>,<>

\

\

\Dear<>

\Additionaltext

\

\Thankyou,

\

\XYZCorporation

CLOSEALL

MODIFYFILEletter.txtNOEDIT

 

=

计算表达式的值。

=Expression1[,Expression2...]

参数

Expression1[,Expression2...]

指定=命令计算的表达式。

备注

=命令计算一个或多个表达式的值,并且放弃返回值。

这个命令对于那些只须获得所需效果,而不需要把返回值赋给内存变量、数组元素或字段的VisualFoxPro函数和用户自定义函数是非常有用的。

例如,要使用插入方式,可以发布命令:

=INSMODE(.T.)

通常情况下,INSMODE返回“真”(.T.)或“假”(.F.)。

但在上述示例中,函数执行后舍弃返回值。

如果只包含了一个表达式(Expression1),则等号就是可选的。

注意   等号(=)还有其他两个与以上所述无关的用法。

它可用在逻辑表达式中作为比较操作符,还可用来给变量和数组元素赋值。

在这两种情况下,等号(=)是一个操作符而不是一个命令。

有关在逻辑表达式中运用等号(=)的详细内容,请参阅帮助中的“关系操作符”。

有关用等号(=)为变量和数组元素赋值的详细内容,请参阅STORE。

 

ACTIVATEMENU

显示并激活一个菜单栏。

ACTIVATEMENUMenuBarName[NOWAIT][PADMenuTitleName]

参数

MenuBarName

指定要激活的菜单栏的名称。

NOWAIT

指定在程序执行时,不等待用户在已激活菜单栏中选择菜单或按ESC键,而是继续执行程序。

发出DEACTIVATEMENU命令后,如果菜单是用NOWAIT选项激活的,则程序的执行不返回到ACTIVATEMENU

命令的下一行命令。

PADMenuTitleName

指定一个菜单标题名,当激活菜单栏时,选中此菜单标题名。

如果不指定菜单标题名,菜单栏激活后,默认激活第一个菜单标题名。

备注

该命令显示并且激活MenuBarName指定的菜单栏,需要结合DEFINEMENU和DEFINEPAD命令使用。

注意当应用程序中包含VisualFoxPro系统菜单栏(_MSYSMENU)时,不需激活此菜单,而是执行SETSYSMENUAUTOMATIC命令。

示例

下面的示例用ACTIVATEMENU命令显示并激活一个用户定义的菜单系统。

当前系统菜单栏先用setsysmenusave命令保存在内存中,然后用setsysmenuto命令删除所有系统菜单标题。

用definepad命令创建两个菜单标题,并且用definepopup为每个菜单标题创建下拉式菜单,然后用definebar命令在每个菜单上创建菜单项。

当选中某个菜单标题后,onpad命令使用activatepopup子句激活相应菜单。

ACTIVATEMENU命令显示并激活这个选中的菜单栏。

选择菜单中的某菜单项后,开始执行choice过程,choice过程显示了选择的菜单项名和包含此项的菜单名。

***该程序名为ACTIMENU.PRG***

CLEAR

SETSYSMENUSAVE

SETSYSMENUTO

ONKeyLabelESCKEYBOARDCHR(13)

DEFINEMENUexampleBARATLINE1

DEFINEPADconvpadOFexamplePROMPT'\

KEYALT+C,''

DEFINEPADcardpadOFexamplePROMPT'Card\

KEYALT+I,''

ONPADconvpa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1