数据库技术讲座
- 格式:pptx
- 大小:19.65 MB
- 文档页数:29
第十讲启动窗口,登录窗口设计作为一个完整的程序,启动窗口(又称为flash窗口)、用户登录窗口都是应该具备的。
这里登录窗口与数据库有关,启动窗口的设计与数据库无关,但为了整个数据库程序的完整性,心铃还是给大家讲一下如何设计。
1 启动窗口。
现在绝大部分软件在启动时都会首先出现显示版权、公司标志或软件标志的一个窗口,有几秒种的延时,这就是启动窗口。
这个启动窗口一般来说有两个目的,上面说的是其一,是可视的,另外一个目的是对于复杂的软件、大型软件、数据库软件,由于在启动时有大量的初始化工作,有的程序可能需要十几秒的时间,如果不显示启动窗口用户还可能以为电脑死机了呢,显示启动窗口既宣传一下软件又可以让用户在程序初始化期间不致于感到心烦。
我们来研究一下这个启动窗口如何设计和运行。
设计制做一般都是在窗体上放置一个图片组件,让其充满整个窗体,调入已经设计好的图片。
然后设定此窗体的BorderIcons属性,将系统菜单、最大化最小化等按钮都取消,设定borderStyle属性为bsNone,即没有边框,这样运行后外观看来就是一幅图片。
这种设计制做大家可以各显神通。
接下来一个值得思考的问题是如何让这个窗口在其他窗口初始化之前就显示出来。
这需要手工写代码来实现。
我们在Project菜单下执行“View Source”就可以看到程序是如何初始化的,一般是这种形式:program lklb;…beginApplication.Initialize;Application.Title := '劳保管理';Application.CreateForm(TMainForm, MainForm);…Application.CreateForm(Tflashwin, flashwin);Application.Run;end.如果是这种形式肯定是不行的,因为flash窗体不可能在主窗体前运行。
下面是改写后的代码:var mydate:Tdatetime;{$R *.RES}beginflashwin:=Tflashwin.create(application);flashwin.show;flashwin.update;mydate:=gettickcount;while((GetTickCount-mydate) / 1000 <2) do;Application.Initialize;Application.Title := '社区卫生';Application.CreateForm(TMainForm, MainForm);…flashwin.Close;flashwin.free;Application.Run;上面这段代码首先创建启动窗口,并延时两秒种后初始化程序,在主窗口显示出来后再关闭启动窗口并释放内存。
简单数据库编辑操作上一讲我们学习了利用Query1控件和SQL语句实现简单数据库查询的方法,在本讲中,我们将要学习如何利用Table1控件来实现添加、修改、删除记录等数据库编辑操作。
获取当前记录在上一讲中我们曾经比较过Query控件和Table控件的异同,并指出Query控件是通过SQL语句来操作数据库的,SQL语句除了可以实现查询外,也可以通过关键字INSERT、UPDATE、DELETE 来实现添加、修改和删除记录的操作,但是这一类SQL语句对初学者来说有一定难度,而Table控件提供有Insert、Edit、Delete等方法,实现简单的数据库编辑操作比Query控件更为容易,因此心铃决定以Table控件为例来介绍进行数据库编辑操作的方法。
MP3Collect使用的Query1和Table1是两个独立的控件,用户看到窗体上的数据是由Query1提供的,怎样才能让Table1控件知道用户当前操作的是哪一条记录呢?为了解决这个问题,我们需要先学习一些基础知识。
数据集控件(Table或Query)除了提供一组记录集合之外,还保存了一个称为光标(Cursor)的指针,用于指向当前记录,程序可以通过调用TDataSet类的First()、Next()、Prior()、MoveBy()、Last()等方法控制记录光标的移动。
如果数据集控件与某个数据控制控件相关联,则还可以通过数据控制控件来移动记录光标,例如,MP3Collect主窗体上的Query1控件和DBGrid1控件建立了关联(通过DataSource1控件),当用户在DBGrid1中选择不同的行时,同时也会把Query1的记录光标移到相应的位置上。
无论用哪种方式改变了数据集控件的当前记录光标,都会触发数据集控件的AfterScroll事件。
因此,我们要为Query1控件添加AfterScroll事件的处理函数Query1AfterScroll,在其中获取当前记录的内容并显示在三个编辑框中,同时在MediaPlayer1中打开相应的音乐文件,另外还要利用Table 控件的FindKey()方法将Table1的记录光标调整到相同的记录上。