主窗口 对象树 浏览器
代码编辑器
对象 查看器
图1 Delphi的外貌
窗体 设计器
二. Delphi的数据库特性及功能*
Delphi通过BDE或ADO提供与数据库的连接。在Delphi部件板上有三页数据库组件:
(1)数据集组件:BDE和ADO
该组件集负责与实际的数据库表联系,并从中获取数据信息。该组件说明有关的数据库的信息,比如:要访问(连接)的数据库,要访问的数据库中的具体的表或视图,以及要访问表中哪些字段等。
①ADO相关组件: ADODataSet、ADOTable、ADOQuery、ADOConnection。
ADOTable与ADOQuery都是使用ConnectionString属性来设置对数据库连接,差别是:ADOQuery可对数据库下命令(设置SQL属性值)。
ADODataSet组件同样可以独立地连接数据库,另外,数据库连接设置完成后,还可以通过CommandType属性来设置使用数据库的方式,其中cmbTable类型就是以表为操作主体,而comText就是使用SQL命令。
4
如数据库程序操作的对象是数据库内单一的表,直接使用ADODataSet、ADOTable、ADOQuery是最好的选择,若要存取同一数据库内不同表的内容还是使用ADOConnection进行连接比较有效。
②BDE相关组件:TTable、TQuery、TstoreProc、TdataSource。
TdataSource组件的DataSet属性用来指明与当前数据源相联系的数据集组件对象的名字. TTable组件
是表达数据库表中的数据和结构的组件。它通过BDE从一个数据库表格中
取得数据并通过TdataSource组件将数据传递给一个或多个数据控制组件。并且,将从数据控制组件处得到的信息传回给数据库。
TQuery组件
是一个使用SQL语句对数据库中的数据进行查询并返回数据集的组件。
它有两个重要属性:DatabaseName属性,用于指定数据库名;另一个使SQL属性,用于指定查询用的SQL语句。
(2)数据访问(Data Access)组件页 包括dataSource等。
dataSource的DataSet属性用来配置与之相关的数据集组件。 (3)数据控制(Data Controls)组件页 DBGrid组件
以网格的形式显示指定数据库表中的全部记录的所有字段信息。
主要用于在数据集中进行记录导航和为用户操纵数据集中的记录
DBNavigator组件
提供一组简明的控制按钮(如下图所示)。用户可通过单击相应按钮(从左到右)实现以下功能:移动记录指针到第一条、移动记录指针到上一条、移动记录指针到下一条、移动记录指针到最后一条、插入记录、删除记录、修改记录、提交对记录的修改、取消修改、刷新记录显示。
数据控制组件具有一些共同的属性,其中的DataSource属性用于指明与数据控制组件链接的数据访问(Data Access)组件。
三.制作用户界面的方法及组件
Delphi中,窗体就是窗口和对话框,进行可视化程序设计一般是从窗体开始并在窗体中完成的。可以根据任务需要在窗体上放置各种组件,设置其属性并编写相应的事件和单元文件中的程序处理代码。
(1)组件的公共属性和事件
5
属性:Action、Align、Autosize、Caption、Color、Cursor、Font、Height、Width、ShowHint、
Left、Top、name、Text、Visible
事件:OnClick、OnDblClick、OnEnter、OnExit、OnMouseDown、OnMouseUp、
OnMouseMove、OnKeyDown等。
(2)按钮组件的使用 Button组件
位于组件面板的Standard标签页上,主要用来响应鼠标的单击事件。在程序运行时当用户用鼠标单击窗体中的该组件对象时,该组件对象的单击事件处理过程就被执行。
BitBtn组件
也是一个按钮对象,它在Additional标签页上,作用与Button基本相似,只是它在组件上显示了一个图标,使窗口界面看起来更美观。
CheckBox组件RadioButton组件
位于组件面板的Standard标签页上,主要用来决定是否选取某项内容。 也位于Standard标签页上,通常将多个这样的组件作为一组,在同一组中,同一时刻只能选中一个按钮,其余按钮自动处于非选中状态。
(3)文本组件的使用 Lable组件
位于组件面板的Standard标签页上。通常用来在窗体上显示静态文本,如标题、说明等。
Edit组件Memo组件MaskEdit组件
位于Standard标签页上。用它可以显示、编辑单独的一行文本。 位于Standard标签页上。用于显示和编辑多行文本。
位于Standard标签页上。类似Edit,它可以显示和编辑具有指定格式的文本,如特定格式的时间、号码等。
StringGrid组件
位于Additional标签页上。以表格形式显示或编辑字符串。用它编辑字符串时,每一格相当于一个Edit组件。
(4)列表组件的使用 ListBox组件
位于Standard标签页上。以滚动列表的形式显示一列或多列文本项供用户选择。
ComboBox组件
位于Standard标签页上。由一个编辑框和一个下拉式列表框组成,
6
可从下拉式列表框中的多个项中选择一项,也可以从编辑框中输入。
(注意:好的设计应尽可能使用以上两个组件来方便用户和减少人为错误) (5)DataTimePicker组件
位于组件面板的Win32标签页上。显示一个列表框,用于输入时间或日期。
(6)菜单的设计
主菜单设计:
? 添加主菜单:Standard标签页——MainMenu,双击或设置Items属性,进入主菜单设计器
? 添加菜单项:在主菜单设计窗口中设置属性,如Caption(或:在窗体文件*.dfm中修改菜单)
分隔条:Caption置为-
快捷键:Caption值前加&,如&New,快捷键为Alt+N 热键设置:ShortCut属性 复选标志:Checked属性
有效/无效设置:在程序中设置Enabled属性。 如:form1.New1.Enabled := true;(false)
弹出菜单设计:
? 添加弹出菜单:Standard标签页——PopupMenu ? 添加菜单项并设置属性
? 将弹出菜单与某一控件相关联,如Edit
procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Clear;
Edit1.PopupMenu:=form1.PopupMenu1; end;
? 响应菜单事件
(7)多窗体的设计
当设定一个主窗体和多个副窗体时,需要添加代码。例如:
主窗体——Form1(Unit1) implementation后加入:
uses Unit2;
7
消息响应中加入:Unit2.Form2.Show; 副窗体——Form2(Unit2) interface uses后加入
Unit1;
消息响应中加入:Unit1.Form1.Show;
unit2.Form2.Hide;
四.生成应用程序的方法
(1) 程序初始化:即对窗体FormCreate()事件的初始化。在程序执行初期,首先执行其中代码。
Form1——Events——双击OnCreate
(2) 添加控件的事件代码:
例:按Button1后弹出Hello World!
为Button1添加OnClick消息处理——双击OnClick
在procedure TForm1.Button1Click(Sender: TObject) 中添加代码
showmessage('Hello World !');
(3) 运行程序:File——Save All;Run——Run(或F9) 也可以利用向导生成应用程序
File——New(New Item对话框)——Projects——Application Wizard——OK
选择菜单 选择工具栏
选择有效的驱动器路径,输入应用程序文件名,运行程序
五. Delphi的编程基础
(1) 数据类型:布尔型、整型、字符串型、实型、自定义数据类型(枚举、集合、数组) (2) 赋值语句: :=
例如:str := ?Hello Word!?;
str := ?Hello? + ? Word?; str := str + ?!?;
(3) 控制语句
①条件控制语句:if、case
if 表达式 then begin
8