# 三十行代码防止VFP表单重复运行,函数支持参数传递,拿来即用

这是原来电脑报上的一个函数,猫猫改良了一下。当然大家也可以改良一下。

VFP最多26个参数,你写满为止

Procedure runform
Parameters cformname,mformname,Parameter1,Parameter2,Parameter3,Parameter4,Parameter5,Parameter6,Parameter7,Parameter8,Parameter9,Parameter10

For nCount=10 To 1 STEP -1
    cName="Parameter"+Alltrim(Str(nCount))    
    IF VARTYPE(&cName)=="L" AND &cName==.f.  
    else
         EXIT
    ENDIF
ENDFOR

*--创建参数
LOCAL strPara
strPara=""
FOR nPcount=1 TO nCount
  cName="Parameter"+Alltrim(Str(nPcount))  
  strPara =strPara +","+ cName
ENDFOR
strPara= RIGHT(strPara,LEN(strPara)-1)

cpublic = "Public "+mformname
&cpublic
If !(Type("&mFormName.")="O" And !Isnull(&mformname.))
    lccmd="Do Form &cformname Name &mformname"
    lcCmd = lcCmd + IIF(EMPTY(strPara),""," WITH "+strPara )    
    &lccmd
Else
    If &mformname..WindowState=1
        &mformname..WindowState=0
    Endif
    &mformname..Show
Endif
Endproc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

调用方法: runform(表单文件名,表单定义变量,参数1,[-参数10])

不带参数 runform("表单2","表单2") 带参数运行(支持10个参数) runform("表单2","表单2","123","456","12345")

# 招生广告啦

一 UI设计的趋势:OS Themes 或者 SKIN/风格 二 UI设计的基本要求:整齐和协调 三 VFP 中 UI设计:静态图片或者GDIPlus 四 VFP 中使用第三方类库的原则:开源、文档、DEMO 和 如何选择 五 VFP 中的菜单:道哥的OOP MENU、倦猫的自绘菜单、VFPX里的RIBBION菜单、马来西亚华裔的自绘菜单(生成器) 六 VFPX 中的 ThemedControls: 七 VFPX 中的 ctl32 类库(主要是状态栏,对话框略提) 八 倦猫的日历控件

# 效果图