廖国富 郭眺 王坚
摘要 在管理类软件录入界面设计中,经常需要设计一个录入的备选项是动态的多个选项而录入结果为其中的一个或者多个选项组合的录入界面。Delphi没有实现这种功能的现成控件,必须自己实现这种功能,本文以实现试题库系统中课程名编辑为例阐述其设计思路及详细程序代码。
关键词 复选框,多项选择,Delphi7
一、引言
动态多项选择录入,即录入的备选项是动态的多个选择项而且可选一个或者多个选项作为录入结果。最近,笔者在设计几个管理软件,诸如通用试题库系统和调查问卷系统,在设计录入界面时,都涉及到动态多项选择录入的问题。即要求对应录入项是动态的,存在相应的表里,多个选择项在程序运行期由表动态生成。通常,单项选择的实现可用组合框(ComboBox)实现,二选一的录入可用复选框(CheckBox)实现。但是对于动态多项选择录入,在Delphi中没有现成的控件来实现,通过试题库系统和问卷系统的开发,笔者完全实现了动态多项选择录入,下面主要阐述其设计思路及详细代码。
二、设计思路
图1 课程名编辑设计视图
以实现试题库系统中课程名编辑为例阐述其设计思路。要实现试题库系统中课程名编辑,一门课程对应多个教学对象;而教学对象集合并不固定,可增加和删除。因此,在程序设计时不能用设计成固定的复选框来组合,多个复选框必须运行期自动生成。先设计如图1所示的表单,将ADODataSet1对应课程名表,将ADODataSet2对应教学对象表,增加一控件ScrollBox作为动态多项选择录入的滚动框界面。FormShow方法中先动态地从“教学对象”表中收集所有教学对象名到字符串str中,不同教学对象名以空格隔开,然后由str分离出各个教学对象名xx为当前将要处理的备选项,将xx赋值给自动生成的复选框Caption 属性。循环自动生成所有的选项显示在ScrollBox控件中。“确定”按钮单击方法中整理复选框得出多项选择的结果并重新清理复选框,使其处于待选状态。
|