您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > PB > 正文
PFC编程基础
[文章信息]
作者:
时间:2002-07-08
出处:
责任编辑:
[文章导读]
首先建立一个PFC应用程序的第一步就是配置应用程序以及建立应用程序管理器- -n_cst_appmanager......
advertisement
热点推荐
· 专业设计的魅力:精确的定位
· 在金山文字中输入文字
· 认识磁盘
· 小小的精彩Flash:广告作品
· 小小的精彩Flash:过关斩将II
[正文]

1 2 3 4 5  下一页

  概要:

  这一章阐述了 PFC 编程的基本技巧,同时也告诉了你如何开始运用 PFC 编写应用程序。

  设置应用程序管理器

  首先建立一个PFC应用程序的第一步就是配置应用程序以及建立应用程序管理器- -n_cst_appmanager。应用程序管理器将替代原来的应用程序对象。原来在应用程序对象中编写的脚本将全部改写在应用程序管理器中。应用程序管理器中同时还通过实例变量、函数来维护应用程序的属性。其中有框架窗口、应用程序与用户的INI文件或注册键以及帮助文件等。

  注意:

  使用分开的物理文件

  每个独立的应用程序都必须拥有自己独立的一套文件。你不可以共享父类文件,也就是那些以PFC开头的文件。这是由PFC的内部继承关系而决定的。

  例如,假设应用程序1与应用程序2都拥有它们自己的一套扩展的PFC库文件,但是它们共享父类文件(PFC库文件)。这时应用程序1在自己的PFE(PFC扩展库)的w_master中增加了一个函数名为of_SetData。这样这个函数将在w_master的所有子类中都有效,这些子类是pfc_w_main,pfc_w_frame,pfc_w_sheet 等。而这些对象恰恰在这两个应用程序共享的父类文件(PFC库文件)中。这样当应用程序2重新生成应用程序时(regenerate)由于应用程序2的PFE文件中没有of_SetData函数。这样w_master的所有子类中的关于of_SetData函数的指针都将被删除。这样当应用程序1运行时将会导致运行时错误与编译错误。

  具体步骤

  1. 打开应用程序画笔。

  2. 定义库文件列表。

PFCAPSRV.PBL
PFCDWSRV.PBL
PFCMAIN.PBL
PFCUTIL.PBL
PFCWNSRV.PBL
PFEAPSRV.PBL
PFEDWSRV.PBL
PFEMAIN.PBL
PFEUTIL.PBL
PFEWNSRC.PBL
PFCOLD.PBL(如果你的应用程序是使用老版本的PFC库那么请增加该文件到库列表 中)

  3. 在应用程序画笔中打开脚本画笔,定义n_cst_appmanager类型的全局变量gnv _app。

  n_cst_appmanger gnv_app 这个变量名必须是gnv_app,因为PFC的对象、函数、事件都需要这个n_cst_appm anager或它的子类的全局变量—gnv_app。

  4. 增加如下代码到应用程序对象的OPEN事件中。它的用途是创建n_cst_appmanager、调用pfc_Open事件。

gnv_app = Create n_cst_appmanager
gnv_app.Event pfc_Open(commandline)

  5. 增加如下代码到应用程序对象的CLOSE事件中。

gnv_app.Event pfc_Close()
Destroy gnv_app

  6. 增加如下代码到应用程序对象的SystemError事件中。调用pfc_SystemError事 件。
gnv_app.Event pfc_SystemError()

  7. 关闭应用程序画笔,保存所作的修改。

  8. 打开用户自定义对象画笔。在PFEAPSRV.PBL中找到n_cst_appmanager并打开,或者是它的子类。

  9. 在n_cst_appmanager的构造事件(Constructor Event)中调用它的函数来初始化关于软件版本号、公司、和INI文件的实例变量。

  10. 在 n_cst_appmanager的pfc_Open事件中打开你所想要的应用程序Service 。

  你所想打开的Service 调用函数Application preference of_SetAppPreference DataWindow caching of_SetDWCache Error of_SetError Most recently used object of_SetMRU Transaction registration of_SetSecurity Debug of_SetDebug

  11. 在pfc_Open事件中增加打开你的初始窗口的代码,例如框架窗口(Frame Window)或者调用显示快闪窗口的of_Splash()函数。

  12. (可选)增加代码到pfc_PreAbout,pfc_PreLogonDlg,pfc_PreSplash事件中,用于定制关于对话框(About box)、登录对话框(Logon box)、快闪窗口(splash screen)。

  13. (可选)增加代码到pfc_idle,pfc_ConnectionBegin,pfc_ConnectionEnd事件中。

  l_ 在应用程序对象的idle事件中调用pfc_idle事件。
  l_ 在应用程序对象的ConnectionBegin事件中调用pfc_ConnectionBegin事件。
  l_ 在应用程序对象的 ConnectionEnd事件中调用pfc_ConnectionEnd事件。

  14. 保存n_cst_appmanager

  如何显示快闪窗口

  非常简单,只需在pfc_Open事件中,在打开第一个窗口的代码之前写上如下代码 :

  this.of_Splash(1)
  Open(w_tut_frame)(根据不同的应用程序有不同的变化!)

  如何显示登录窗口

  1. 在框架窗口的Open事件中调用of_LogonDlg函数:

Integer li_return
li_return = gnv_app.of_LogonDlg( )
IF li_return = 1 THEN
this.SetMicroHelp("Logon successful")
ELSE
MessageBox("Logon", "Logon failed")
Close(this)
End If

  Of_LogonDlg函数将显示w_logon对话框,同时还会提示输入用户名、密码,当用 户点击OK按钮时还会触发n_cst_appmanager的pfc_Logon事件。

  同样,你也可以在n_cst_appmanager的pfc_Open事件中的打开框架窗口之后立即 调用Of_LogonDlg函数。但是绝对不要在Of_Splash之后立即调用Of_LogonDlg 。

  2. 在n_cst_appmanager的pfc_logon事件中编写登录到数据库的代码。这个例子 假设有一个INI文件,它包含了所有的需要登录到数据库的信息,除了用户名、密码以外。同时还假设你已将SQLCA的默认类型改为n_tr(PFC制定的书屋对象类型 )。

Integer li_returnString ls_inifile, ls_userid, ls_password
ls_inifile = gnv_app.of_GetAppIniFile()
IF SQLCA.of_Init(ls_inifile,"Database") = -1 THEN
Return -1
END IF
// as_userid and as_password are arguments
// to the pfc_Logon event
SQLCA.of_SetUser(as_userid, as_password)
IF SQLCA.of_Connect() = -1 THEN
Return -1
ELSE
gnv_app.of_SetUserID(as_userid)
Return 1
End If

1 2 3 4 5  下一页

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • [配置推荐]4100元高性价比配置
  • 软件频道电脑应用多媒体教程
  • 专业设计的魅力:精确的定位
  • 在金山文字中输入文字
  • 认识磁盘
  • 小小的精彩Flash:广告作品
  • 小小的精彩Flash:过关斩将II
  • 11.19精选 闪客五周年作品展
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索