热门文章 | 热门软件| 热门源码 | 热门电影 | 知识库 | 联系我们
软件 源码 教程 影视 健康 招聘
  HTML | JavaScript | ASP | PHP | JSP | NET | VB | VC | VF | Windows | Linux | Mysql | Mssql | Oracle | Struts 
当前位置: 创世纪计算机资源网 -> 文章频道 ->vf 
站内搜索:
VFP查询系统实现技巧六则(2)
作者:佚名 来源:anqn.com 整理日期:2006-8-12


  实现中英文自动切换

  在用VFP6.0开发查询系统时,文本框对象和组合框对象应用得较多,在文本框中进行中英文的输入时,来回切换非常烦琐,所以笔者借助自定义子类,来实现中英文输入的自动切换。具体实现的步骤如下:

  1.点击VFP6系统选单栏“文件→新建→类”,启动“新类”对话框,填入类名为gsTextBox,并设置父类为TextBox,在“存储于”栏处输入存储的位置和名称,按“确定”键进入类设计器画面。

  2.新增一个属性,来作为对象是否启动中文输入法的控制码。通过系统选单栏“类→新建属性...”,启动“新建属性”对话框,设置一些属性,其中可视性设为public。

  3.最后设置GotFocus与LostFocus事件过程。Gotfocus Event事件过程如下:

  If thischinese

  &&&&中英文选择,thischinese为逻辑量

    =imestatus(1)

    else

    =imestatus(0)

    endif

    Lostfocus Event事件过程如下:

    =imestatus(0)

  至此,类已经定义完成,以后只要在设计表单时,通过表单控件“工具栏→查看类→添加...”把自定义类加入,并且设置“中英文选择”属性,即可实现中英文输入的自动切换。

  实现整条记录突出显示

  在用VFP设计一个查询应用系统时,信息的浏览是相当重要的功能之一,通常采用的实现方法是用Grid对象来显示数据信息,但在使用过程中却存在一些不足,就是当使用者在记录之间移动时,只有获得焦点的那条记录的某一字段可以以不同于Grid背景的颜色显示,很不醒目。

  笔者利用Grid对象,成功实现了当数据记录移动时,整条记录均用同一种颜色突出显示,即当数据记录移动时,用颜色动态变化显示相对光标所在的位置,设计步骤如下:

  首先定义一个Grid对象,并设置好其属性,然后在其AfterRowColChange事件过程中添加如下代码:

  LPARAMETERS nColIndex

  this.setall("dynamicbackcolor","iif(this.activerow〈〉recn(),rgb(255,255,255),rgb(0,0,255))","column")

  利用以上代码,们就能达到当数据记录移动时,其相对的Row显示动态颜色变化。

  在上面的设计中,们首先使用了SetAll() 方法设定Grid中的Column层次的 DynamicBackColor(动态背景颜色属性),然后在第二个参数中使用了Grid 对象的ActiveRow反映相对的行数,若不等于记录编号时,则通过 RGB(255,255,255) 送出白色背景,若相对行等于记录编号时,则通过 RGB(0,0,255)送出绿色背景色,而该颜色也可自行设定。

  用Grid模拟Browse窗口

  可以将Grid结合在Form对象中,模拟成一个Browse命令窗口,可以自由调整Form大小,而Grid对象也会自动调整大小。实现方法如下:

  1.首先设定一个Form对象,该对象必须保留其BorderStyle为“3-可调边框”,这样可自由调整大小的边线属性,同时设定Resize事件程序如下:

  Thisform.Grid1.Width=this.width

  Thisform.Grid1.Height=this. Height

  2.设计一个Grid对象于Form对象中,并设定其属性如下:

  Width=Thisform.Width

  Height=Thisform.Height

  RecordSource设为目前“数据环境”中所设定的工作区别名;

  Top与Left均设为0,表示该对象左上端坐标为0,0。

  这样,已经设定好的Grid对象和Browse窗口一样,当对Form对象进行大小调整时,对象的高度与宽度就可以随之调整。

[1]  [2]  
相关文章