a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 225|回复: 3

[Visual FoxPro] 2011年度计算机等级考试二级VFP基础教程(33)

[复制链接]
发表于 2012-7-31 22:17:54 | 显示全部楼层 |阅读模式
 5.2 表单(二)  八。为表单创建新属性:6 o( V" C$ h* ]9 }1 v* x- y
  1.打开表单,单击"表单"菜单,选"新建属性"菜单项,系统弹出"新建属性"对话框! E. S: ^6 |' L: H" ]. V1 @) g
  2.在该对话框的"名称"框中输入属性名,同时可在说明框中加上该属性的注释,单击"添加"即可,如图82 E# ]7 K! R3 ~. M1 J, [

6 _+ D7 ?9 X; r  3.选access项和assign项,则在新建表单属性的同时创建该属性对应的方法程序,其中access方法在查询该属性时被执行,assign方法程序在修改该属性时被执行。
- g( r4 C. a& q  ~# k0 {' e$ ]  r  4.单击对话框中的"关闭"按钮,该属性即被添加到"属性"窗口中,选中表单,在"属性"窗口中可选中并检查该属性,如图9# x. U- P5 V" t7 x/ l' t9 P" w: }
回复

使用道具 举报

 楼主| 发表于 2012-7-31 22:17:55 | 显示全部楼层

2011年度计算机等级考试二级VFP基础教程(33)

九。为表单创建新方法程序:  1.打开表单,单击"表单"菜单,选"新建方法程序"菜单,系统显示"新建方法程序"对话框8 I( x# }% N5 m& w/ a: B! B
  2.输入方法程序的名称后,单击"添加"按钮即可,如图10.
; v9 h9 n3 m  ^$ X/ _: X9 g2 z' P4 v
3 {8 z6 R( Q: }; w! I  方法程序代码应在"属性"窗口的"方法程序"选项卡中选择该方法程序名双击,在弹出的编辑器中输入方法程序。新建的方法程序的执行方法与系统提供的方法程序相同。; t! c8 A6 L  ?+ M: |% y/ }) r2 G
  十。例一:制作表单xggz.scx,修改人员工资数据。5 E" I: {+ M* T9 C
  1.新建一个表单,右击表单空白处,将"工资情况"表添加到数据环境中: l2 c( G+ Y3 _7 j( l8 r" W! \
  2.在"数据环境设计器"中,将"工资情况"表的各个字段,依次拖到表单上,如图11,6 C- k2 Z# s# ]/ v3 M. v! A- W

5 s5 O1 h2 E: O6 o  并调整它们的位置,全部字段拖到表单上后,如图12
+ \- B" Z5 E: ^7 J* n4 B
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 22:17:56 | 显示全部楼层

2011年度计算机等级考试二级VFP基础教程(33)

 3.向表单添加5个命令按钮:command1,command2,command3,command4和command5,将它们的caption属性依次设为"第一个","上一个","下一个","最后一个","退出",并调整它们的位置,如图13. " c* M! ?/ W) |1 P
  再次说明一下修改控件属性的方法:以command1为例,在"表单设计器"中选中command1,其四周出现黑色方块,表明已被选取。然后在"属性"窗口中选"全部"选项卡,拖动滚动条,选中caption属性,在上方的文本框中输入属性值:第一个,如图14
7 E$ _# }0 v- M2 H% O
; L7 ?! ~  |. n3 H5 \5 \  4.将表单的caption属性(即标题栏显示的内容)设为"修改工资",autocenter属性设为。T.(此属性设为真,运行时表单自动居中).
! k/ z* ?) M" F$ ]  5.编写代码:
6 J# o  _& @( ~  * "第一个"按钮(command1)的click事件代码:6 L* M. Y5 Y- W- \8 Q
  go top" t# s. T  B/ S
  thisform.refresh &&刷新显示
2 d6 P+ \% U* L$ d* G% {/ @  *"上一个"按钮(command2)的click事件代码:# w7 A, U0 F6 O) [" B  M
  if !bof()+ c# n/ k6 T; O! J2 W
  skip -1 &&如果当前记录不是首记录,则向上移动一位记录指针
" G( X# d2 x* [) F  X  endif
! h) S* u6 f9 F, v# ]! S7 z1 y# _  thisform.refresh) {, o' H5 m1 A: J3 E
  *"下一个"按钮(command3)的click事件代码:% r$ y1 x) ~" W$ L* Q: y
  if !eof()
' w+ J1 x/ Z) N' ?  skip &&如果当前记录不是最后一条记录,向下移动一位记录指针
& D2 [  T$ I8 }9 @* n  endif' u5 B5 M2 S, n' E, ?8 k+ p. x
  thisform.refresh
# C) W& m) J  e( t! t5 s5 z2 K  *"最后一个"按钮(command4)的click事件代码:
$ N( |% s" F( i$ ?& k  go bottom
3 C8 }' o# t% ]% B8 H( y  thisform.refresh/ H( e5 P* A) ^- D; O
  *"退出"按钮(command5)的click事件代码:/ a9 c7 Q% F& W6 |) G! |
  tui=messagebox("您确实要退出吗?",4+64,"提示信息")
9 y& P2 d8 h6 s  if tui=6 &&如果此条件为真,说明运行时用户点了消息框中的"是",执行thisform.release释放表单
2 }' T9 o  ~! ?+ ~- ~  thisform.release( I, b: V0 A2 h/ B& x# l
  clear events
1 ^2 }0 c* b/ x, a2 P5 o: i  endif
$ _- n& D; c, {4 _# I  6.保存表单到e:\myvfp,名为"xggz"
6 m" V+ \# ~4 o  7.运行表单,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-31 22:17:57 | 显示全部楼层

2011年度计算机等级考试二级VFP基础教程(33)

  十一。例二:表单调用举例:建立一个名为diaoyong的程序文件,用程序代码调用例一中建立的xggz.scx表单
$ m1 l3 a3 l5 k% x  1.在命令窗口输入命令:modify command diaoyong,在弹出的代码窗口中输入如下代码:  W+ F+ _( y2 Y- C8 X
  set default to e:\myvfp
! N. m5 q$ U; l/ ?  do form xggz
1 d0 ?1 U, l+ Y% P3 Z' [6 h  read events$ r$ ?$ d) E3 K1 \/ x% y7 l, {3 K* H
  2.在命令窗口如下命令执行程序:
! h5 z% I0 ^5 R8 U! ^0 W  do diaoyong
3 @2 ?3 E$ d4 z  十二。例三:表单内部控件的事件发生顺序% r6 e6 Q1 y, x0 T
  1.新建一个表单,添加三个命令按钮,如图16
' T: X+ w6 ]2 Z. e( M3 B" F# n9 p 2 k5 N# O% A  g( |3 t5 z
  2.添加事件代码:
0 b6 S; N1 _, e. j6 [4 h8 m8 D* b  *表单的load事件:messagebox("form1.load")# a" p+ Y2 C& k
  *表单的inint事件:messagebox("form1.init")  l5 D1 R( V  F7 Y0 a- R& E
  *表单的click事件:messagebox("form1.click")
1 i3 q% f. N$ d' u  *表单的destroy事件:messagebox("form1.destroy")
, m+ H9 ^  A$ T, k1 t  *command1的init事件:messagebox("command1.init")
0 m$ T. I  s6 r, }1 Y: I  *command2的init事件:messagebox("command2.init")  J5 t' N$ O% T5 G- s# Y/ n2 x
  *command3的init事件:messagebox("command3.init")0 g0 l7 |. o3 w
  *commadn1的click事件:messagebox("command1.click")
/ Z( W! G8 y, K) T  O- Z: w2 A0 M; K  3.保存表单文件为li3.scx,目录为e:\myvfp.运行li3.scx,观察事件发生的先后顺序。( Y% q2 M. [: L, v) l+ _7 Y
  十三。例四:修改表单li3.scx:
8 z/ N! \4 M, s/ g  1.在命令窗口依次输入下面两条命令,打开表单li3.scx
8 v: M( f; Y3 q5 i/ B9 l  set default to e:\myvfp/ r; b# z6 e, M4 ^6 w) [
  modify form li3.scx
. V5 `0 o' ?: H  \$ l# S! f. A  2.向表单中添加一个文本框text1,为text1编写下列事件代码:& P4 O2 i- v& o' u7 q+ g
  *text1的when事件:messagebox("text1.when")
0 Y  R4 `3 O6 E! W0 U5 L. r  *text1的gotfocus事件:messagebox("text1.gotfocus")5 X/ M) ]/ \% J6 b" l3 I0 t
  *text1的valid事件:" I, M5 p3 o0 m+ M# N5 N
  messagebox("text1.valid")
  x2 G  E, [9 j, l  return .t.+ F) _  }; {( E9 g$ M. p
  *text1的lostfocus事件:messagebox("text1.lostfocus")
3 [2 }) L8 J& X: e1 l  3.运行表单,单击text1文本框,观察文本框对象事件发生的先后顺序
" D4 t  m6 s; l8 J2 w  M  B' f4 w  4.将text1的valid事件的返回值改为。F.(即return .F.),运行表单,单击text1文本框,观察有何不同。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 20:11 , Processed in 0.256371 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表