delphi实验7报告册
《Delphi7程序设计基础》实验指导书2012last
实验一Delphi程序设计初识实验目的●了解Delphi 7.0的集成开发环境(IDE)●初步掌握在Delphi IDE中开发应用程序的一般步骤●初步掌握窗体设计器、对象观察器、代码编辑器的使用方法实验示例1设计如下图所示的Windows应用程序。
程序运行后,窗口空白显示,鼠标点击窗口,则显示如图文字,同时“退出”按钮激活;单击“退出”按钮,则关闭窗口,结束运行。
实现步骤:1.新建Application项目启动Delphi 7.0后,IDE已自动创建并初始化了一个Application项目Project1。
第1步可省略。
否则,通过执行菜单【File】→【New】→【Application】项创建,或单击工具栏上的New items快捷钮打开的对话框来创建Application。
IDE自动初始化一个Windows应用程序项目。
2.在窗体上布置组件1)用鼠标拖动的方法,适当调整窗体的大小;2)在standard组件板上用鼠标点击(Button组件),然后在窗体适当位置单击,将自动创建按钮Button1;3)在standard组件板上用鼠标点击(Label组件),然后在窗体适当位置单击,将自动创建标签Label1。
3.设置窗体和组件属性1)通过单击窗体空白处,或在对象观察器(Object Inspector)窗口的对象列表框中选中Form1,然后在属性页(Properties)中点击选中Caption属性,在其后输入“My first form”属性值;2)同样方法选中Label1组件对象,将其Caption属性值设为“我的第一个Windows应用程序”,Font(字体)属性设为“宋体”、五号、深蓝色,Visible(可视的)属性设为False;3)选中Button1组件对象,设置其Caption属性为“退出”,Enabled(激活的)属性设为False。
4.编写程序代码1)选中Form1,在对象观察器窗口的事件(Events)页中选中OnClick(鼠标点击)事件,鼠标双击其后的编辑处,IDE则自动初始化了一个TForm1的OnClick事件处理过程(见代码编辑器窗口),转到代码编辑器窗口,在对应事件处理过程中编写如下代码:procedure TForm1.FormClick(Sender: TObject);beginlabel1.Visible:=true;button1.Enabled:=true;end;2)选中Button1,同样方法,编写其OnClick事件处理程序代码如下:procedure TForm1.Button1Click(Sender: TObject);beginform1.Close;end;5.保存项目和程序单元执行菜单【File】→【S ave Project As…】项,在打开的保存项目文件对话框中,选择项目保存位置,编辑项目文件名,确认保存项目(扩展名dpr);然后执行菜单【File】→【Save As…】项,在打开的对话框中保存单元文件(扩展名pas)。
Delphi实验报告
**学院计算机系综合性实验实验报告课程名称 Delphi程序设计实验学期 2010 至 2011 学年第二学期学生所在系部计算机系年级 2009 专业班级学生姓名学号任课教师邵铁君实验成绩计算机系制《Delphi程序设计》课程综合性实验报告开课实验室:信息楼基础五2011年6月13日实验题目Delphi数据库综合设计实验题目:Delphi数据库综合设计一、实验目的:1、学习Delphi数据库可视化控件及应用2、掌握数据库分析与设计3、熟悉Delphi数据库应用程序的开发过程。
二、实验设备及环境:1、微型计算机2、Windows操作系统3、Delphi5.0以上版本的开发环境4、微软Access软件三、实验内容及要求:1、实验内容数据库表结构设计(以学生档案信息管理系统为例):用户表denlu.db包含:字段名类型长度索引user 文本50 索引pass 文本50学生信息表dangan.db包含:字段名类型长度索引姓名文本10 索引学号文本10性别文本8院系文本15党团员文本10籍贯文本15专业文本15电话号码文本10情况文本50软件界面设计:主要功能代码设计:1).登录验证即FORM2窗口主要代码:procedure TForm2.Button1Click(Sender: TObject);varu,p:string;beginu:=edit1.Text;p:=edit2.Text;ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select user,pass from denglu where user='+''''+u+''''+'and pass='+''''+p+'''');ADOQuery1.Open;if ADOQuery1.RecordCount=0 thenbeginApplication.MessageBox('密码错误, 请重新输入','提示',mb_ok);edit1.SetFocus;endbeginform2.Hide;form3.ShowModal;end;end;procedure TForm2.Button2Click(Sender: TObject);beginclose;end;procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);beginapplication.Terminate;end;procedure TForm2.FormCreate(Sender: TObject);begintryADOConnection1.Open;exceptapplication.MessageBox('找不到数据库,引起该问题的原因是数据库文件可能被人为删除或改名','无法打开数据库',0);application.Terminate;end;end;2).学生信息管理系统即FORM3窗口主要代码:procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);beginapplication.Terminate;end;procedure TForm3.N2Click(Sender: TObject);beginform4:=tform4.create(application);form4.show;end ;procedure TForm3.N6Click(Sender: TObject);beginform5:=tform5.Create(application);form5.Show;end;procedure TForm3.N7Click(Sender: TObject);beginform6:=tform6.Create(application);form6.Show;end;procedure TForm3.N4Click(Sender: TObject);application.Terminate;end;3).信息录入即FORM4窗口主要代码:procedure TForm4.DataSource1DataChange(Sender: TObject; Field: TField);vari:integer;begini:=ADOTable1.RecNo;statusbar1.Panels[0].Text:='第'+inttostr(i)+'条记录,总共'+inttostr(ADOTable1.RecordCount)+'条记录';end;procedure TForm4.FormCreate(Sender: TObject);begintryADOConnection1.Open;ADOtable1.Active:=true;exceptapplication.MessageBox('找不到数据库,引起该问题的原因是数据库文件可能被人为删除或改名','无法打开数据库',0);application.Terminate;end;end;procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);beginAction:=cafree;end;4).组合查找即FORM5窗口主要代码:procedure TForm5.Button1Click(Sender: TObject);var s:string;begins:='select * from dangan where (1=1)';if edit1.text<>''thens:=s+'and(姓名='''+edit1.Text+''')';if edit2.text<>''thens:=s+'and(学号='''+edit2.Text+''')';if combobox1.text<>''thens:=s+'and(性别='''+combobox1.Text+''')';if combobox2.text<>''thens:=s+'and(党团员='''+combobox2.Text+''')';if edit3.text<>''thens:=s+'and(院系='''+edit3.Text+''')';if edit4.text<>''thens:=s+'and(籍贯='''+edit4.Text+''')';if edit5.text<>''thens:=s+'and(专业='''+edit5.Text+''')';if edit6.text<>''thens:=s+'and(电话号码='''+edit6.Text+''')';adoquery1.Close;adoquery1.sql.Clear;adoquery1.open;edit1.Text:='';edit2.Text:='';edit3.Text:='';edit4.Text:='';edit5.Text:='';edit6.Text:='';combobox1.Text:='';combobox2.Text:='';end;procedure TForm5.FormCreate(Sender: TObject);begintryadoconnection1.open;exceptapplication.messagebox('找不到数据库','无法打开数据库',0);application.terminate;end;end;procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);beginAction:=cafree;end;5).模糊查找即FORM6窗口主要代码:procedure TForm6.Button1Click(Sender: TObject);begindm.ADOQuery2.Close;dm.ADOQuery2.SQL.Clear;dm.ADOQuery2.SQL.Add('select * from dangan');dm.ADOQuery2.SQL.Add('where 姓名like'''+edit1.text+'%''');dm.ADOQuery2.Open;panel1.Caption:='总共找到'+inttostr(dm.ADOQuery2.RecordCount)+'条记录';end;procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);beginAction:=cafree;end;procedure TForm6.FormCreate(Sender: TObject);begin//dm.ADOConnection1.Close;try// dm.ADOConnection1.Open;exceptapplication.MessageBox('找不到数据库,引起该问题的原因是数据库文件可能被人为删除或改名','无法打开数据库',0);application.Terminate;end;end;2.实验要求使用ADO控件实现学生档案的输入,多条件查询,模糊查询,并且通过用户登录设置程序的使用权限。
Delphi_7_用户界面设计
procedure TForm1.Close1Click(Sender: TObject); begin
Close; end;
状态栏组件栏中Standard卡,取Panel组件,形成长条, 准备作状态的承载面板。Caption: 空, Name: StatusPanel ,
[例7-7]
5. InputBox函数
function InputBox(const Acaption,Aprompt, AdefaultMsg:string;):string;
6. MessageDlgPosHelp函数
function MessageDlgPos(constMag:string; DlgType:TMsgDlgType;Buttons:TmsgDlgButtons; HelpCtx:Longint;x,y:Integer; const HelpFileName:string):Word;
procedure ShowMessage(const Msg:string); onst Text; Caption: Pchar;
Flage: Longint=MB_OK):Iteger; 2. MessageDlg函数
function MessageDlg(constMag:string; DlgType:TMsgDlgType;Buttons:TmsgDlgButtons; HelpCtx:Longint):Word;
设计File ->Open Close 对这二个菜单设计工具栏 组件栏中【Standard】卡,取Panel组件,形成长条,准
备作工具的承载面板,快捷工具按钮将建在其上。它是容 器组件。 Caption: 空,Name: ToolPanel,Align: alTop(顶端, 标题、菜单的下方)
Delphi7程序设计第3章
⑸ OnKeyDown事件、OnKeyUp OnKeyDown OnKeyUp事件和OnKePress OnKeyUp 事件 这是响应键盘的一组事件。组件处于激活的焦 点状态时,按下了键盘上的键时将触发 OnKeyDown事件,返回的是按下键的键值,可以 OnKeyDown 是复合键;释放一个按下的键时将触发OnKeyUp OnKeyUp 事件;键盘上的键一次完整地按下和释放操作 将触发OnKeyPress OnKeyPress事件。 OnKey量的可视化组件,使程序员能够在 拖拖放放中轻松地设计程序界面。Delphi中提供的 【Standard】 、 【Additional】 和 【Win32】 三 个 标 签页放置基本组件。这些组件都是任何程序设计必不 可少的。本节将详细介绍常用组件的使用方法。
5.HideSelection属性 该属性决定当输入焦点从Tmemo组件移走后,编辑框内原 来被选中的文本是否依然保持选中状态。其设置为True,不 保持;其值为False,保持。该属性的默认值为True。 6.MaxLength属性 该属性确定编辑框最多可以输入的字符数,缺省值为0, 表示可以输入任意多的字符;如果该属性不为0,只能向编辑 框中输入小于或等于设定值的字符数。 7.Modified属性 该属性确定编辑框中的内容自建立以来或者Modified属 性最后一次被设置为False之后是否被修改。 8. PasswordChar属性 该属性在一些编辑框组件如TMaskEdit、TDBEdit中都有。 缺省时该属性为#0,即没有掩码。用户可以自己设置一个掩 码,如‘*’,则用户在编辑框中输入的字符都将以‘*’字 符显示,而隐藏真实的字符。
当编辑框中的内容发生变化时,触发该事件,它是Edit中最 常用,也是最有用的事件之一。 当按下一个按键时,触发该事件。 编辑框获得输入焦点时,触发该事件。
Delphi程序设计电子教案第7章 报表制作与使用-PPT文档资料
7.1.1 QuickReport组件概述
例7.1 设计系部编码表的查询、编辑、预览、打印程序。
设计要求:程序由两个窗体组成。 一个是查询与编辑主窗体,如图7.1所示。 一个打印预览子窗体,如图7.2所示。 当程序执行后,在主窗体中按《预览》按钮,则调用报
表预览子窗体,预览界面如图7.3所示。
7.1.1 QuickReport组件概述
( 3 )在 表 带组 件中 放置 显示 标题 、字 段名 、 字 段值的
QRLabel、QRDBText等组件。
7.1.2 QuickReport组件
1.QuickRep组件 (1)作用:建立报表表区,设计报表式样与栏目(如报表
的页眉、标题、表头、明细、汇总、页脚等)。
(2)添加QReport页 主菜单:Component | Install Packages | Add | 选择 C:\Programs Files \BorLand\ Delphi7\Bin\dclqrt70.bpl \打 开,则QReport页被添加到组件板上。
Name ADOConnection_Xsda Table_TB06 DataSource_TB06 DBGrid_TB06 Form7_1 BitBtn_Preview BitBtn_Print BitBtn_PrintSetup
7.1.1 QuickReport组件概述
(4)数据报表的组成
由图7.2与图7.3可知数据报表通常是由:
(3)创建报表子窗体
先建Form子窗体,后将QuickRep组件添加到子窗体中。
7.1.2 QuickReport组件
创建例7.1 中系部编码打印预览报表子窗体。
打开工程文件Project7_1.dpr,创建新窗体Form,设置
【精品文档】Delphi实验报告格式-word范文 (4页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==Delphi实验报告格式实验一Delphi环境和基础知识练习一、实验目的1.掌握启动与退出Delphi的方法。
2.掌握建立、编辑和运行一个简单的Delphi可视化应用程序的全过程。
3.掌握建立、编辑和运行一个简单的Delphi控制台应用程序的全过程。
4.掌握基本控件(窗体、文本框、标签、命令按钮)的应用。
二、实验内容1.编写一个工资发放的程序,根据用户输入的工资金额,计算出钞票张数最少的付款方案。
2.编写程序,利用枚举类型计算当前日期,以及昨天和明天的星期值。
3.利用数组类型编写一个程序,将随机产生的十个数字按照递减的顺序输出。
4.用自定义过程或函数,编写一个程序,实现用户输入年份的闰年判断功能。
三、界面设计与属性设置 1.第一题属性设置2.第二题属性设置四、代码实现 1. 第一题代码2. 第二题代码实现五、实验结果六、存在的问题实验二 Delphi面向对象编程一、实验目的1.了解面向对象的特性,理解类与对象的基本概念。
2.掌握类的声明、实现和使用。
3.掌握静态方法、虚方法和抽象方法的使用。
4.掌握类运算符is与as的使用方法。
二、实验内容编写一个应用程序模拟银行卡交易过程。
假定人民银行作为管理机构制定银行卡规范,中国银行、工商银行和建设银行各自发行自己的银行卡,假如每个银行存款和取款收取不同的手续费,如,中国银行:存款0.5%,取款1.5%;工商银行:存款1%,取款1%;建设银行:存款1%,取款2%。
要求:人民银行为抽象类,包括余额、账号等字段和存、取款等虚方法,三个银行的银行卡类分别从该抽象类继承。
界面提供开户、存款、取款和查询余额的功能,界面设计友好。
三、界面设计与属性设置四、代码实现五、实验结果六、存在的问题实验三基本VCL组件应用一、实验目的1. 掌握窗体控件的重要属性、事件和方法。
武职 Delphi课程设计实训报告
Delphi课程设计实训报告姓名:王照学号:10031479班级:信管10301指导老师:何定华2012-10-8一、实训目的二、实训步骤1、将SQLServer认证方式改为双模式认证,服务器设置为20120223-1545,用户名设置为sa,密码设置为123456。
2、创建数据库cjgl,创建表cj1,cj2,向表中插入数据。
创建数据库和表向表中插入数据3、新建文件夹eg3用于管理Delphi文件和数据库文件4、将BusinessSkinForm安装文件拷贝到C:\Program Files\Borland\Delphi7\Lib下,并双击BSFD7.dpk启动Delphi。
依次单击Compile和Install。
5、安装sdac370d7(sqlfor70).exe控件关闭Delphi,进行安装6、关于Delphi的详细操作步骤如下(1)将Form1的Caption改为“登录”(2)为Form1添加三个bsSkinStdLabel,三个Edit,两个Button。
一个MSConnection控件,一个bsBusinessSkinForm 控件,一个bsSkinData1控件,一个bsStoredSkin控件。
(3)将MSConnection1的Password属性设置为123456,将Server属性设置为20120223-1545,将Username设置为sa。
(4)创建Form2,将Form2的Caption属性设置为“学生成绩管理系统”。
在Form2上添加Panel1,Panel2,Panel3,Panel4,DataSource1控件,MSTable11控件,bsBusinessSkinForm1控件。
将Panel1的Align属性设置为alTop,将Panel2的Align 属性设置为alLeft,将Panel3的Align属性设置为alClient,将Panel4的Align属性设置为alTop。
delphi实验指导书
实验一:选择结构程序设计一、实验目的:1、掌握Object Pascal 语言的的数据类型,熟悉定义各种的数据类型的变量的方法。
2、学会正确使用逻辑运算符和逻辑表达式。
3、熟练掌握if语句和Case语句。
二、实验内容:1、编程求分段函数的值。
2、给出百分制的成绩,要求输出其对应的成绩等级“A”,“B”,“C”,“D”,“E”。
其中:90分(包括90分)以上的为“A”,80-89分的为“B”,70-79分为“C”,60-69分为“D”,60分以下为“E”。
三、实验步骤:内容1步骤:1、在“开始/程序/BORLAND DELPHI 6”中运行“DELPHI6”选择主选单的FILE-NEW-APPLICATION。
2、点击“OBJECT INSPECTOR”在窗体上放置2个LABEL组件,1个EDIT组件,2个BUTTON组件。
3、点击“CADE EDITOR”双击“计算”按钮,在TFORM1。
BUTTON1CLICK事件处理器的编辑区输入代码4、点击“CADE EXPLORER”双击“关闭”,在TFORM1。
BUTTON2CLICK事件处理器的编辑区输入下列一行代码:CLOSE;5、对FORM进行常用的操作保存文件,按F9运行。
实验2步骤:1、选择主选单的FILE-NEW-APPLICATION。
2、在窗体上放置2个LABEL组件,1个EDIT组件,2个BUTTON组件。
3、双击“等级”按钮,在TFORM1。
BUTTON1CLICK事件处理器的编辑区输入代码4、双击“关闭”,在TFORM1。
BUTTON2CLICK事件处理器的编辑区输入下列一行代码:CLOSE;5、保存文件,按F9运行。
四、实验仪器及工具软件:微机及WIN98操作系统、DELPHI五、实验说明及注意事项:如何加入组件六、实验前的准备:1、熟悉DELPHI 6的界面操作七、实验报告要求:1、实验报告必须独立完成,抄袭、复制他人的报告作无效处理。
Delphi7的简介与实例参考文档
1.直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件 编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度 更快。在处理速度和存取服务器方面,Delphi的性能远远高于其他 同类产品。
2.支持将存取规则分别交给客户机或服务器处理的两种方案,而且允许 开发人员建立一个简单的部件或部件集合,封装起所有的规则,并 独立于服务器和客户机,所有的数据转移通过这些部件来完成。这 样,大大减少了对服务器的请求和网络上的数据传输量,提高了应 用处理的速度。
对于在程序运行期间保持不变的数据,Delphi允许通过声明 常量来调用。声明常量不必指定数据类型,但需指定常量 所代表的数据的值。 常量的声明格式如下:
Const 常量名=表达式
10
2.2 Delphi Object Pascal 的概述
2.2.3 运算符 1.赋值运算符(:=)
赋值运算符“:=”是先计算赋值运算符右边表达式的值 ,再将结果赋给左边的变量。 2.算术运算符
2
1.2 Delphi 可视化开发环境简介
1. Delphi 7 IDE 运行界面 通常,启动Delphi 7的方法是:单击“开始”按钮,然后 依次从级联菜
单中选择“程序”\Borland Delphi 7\Delphi 7选项,就进入了 Delphi 7
IDE 运行界面,如图所示会出现5个主窗口: 标题为“Delphi7-Project1”的Delphi的主窗口。 Delphi的主窗口位于屏幕的上端,包括主菜单、工具样和组
件板。 对象Tree View (object Tree View). 对象观察器(Object Inspector). 标题为“From1”的窗体设计器。 标题为“Unit1.Pas”的代码编辑器,刚启动时这一窗口的大部
delphi实验报告.doc
Delphi数据库字典查询实验预习报告:一、实验目的1、了解利用delphi创建数据库及代码编写。
2、掌握Table、adoquery组件的作用和常用属性、方法、事件的应用。
3、掌握DataSource 组件的作用和常用属性的设置。
4、掌握对TQquery的SQL属性设置为“select * from 表名where name lik ‘c%’and name link ‘a%’’。
二、实验内容综合前面各章内容设计并调试一程序,创建成语字典查询系统所需的表;实现对成语的精确和模糊查询的功能。
实验指标:(1)创建成语字典查询系统所需的表,并能连接上数据库。
(20分)(2)对所建成语字典库的更新。
(20)(3)用ADOQuery控件完成对成语的精确和模糊查询(40分)(4)生成Word文档,完成对成语字典查询结果的保存(20分)实验要求:要求学生提前写好预习报告,编号代码。
学生甲:完成(1)、(3)的内容学生乙:完成(2)、(4)的内容三、实验原理该实验项目为综合性实验项目,除了要了解SQL语言各语句的语法与使用方法,熟悉QUERY或ADOQuery组件的常用属性、方法;TABLE 或ADOTABLE组件的常用属性、方法;还需掌握DataSource组件的作用和常用属性的设置,掌握利用QUERY或ADOQuery 组件实现静态或动态查询的方法和步骤,还需要掌握菜单,富文本等一些基本组件。
由于该实验项目涉及知识面较广,能够含盖几乎整本教材的内容。
综合前面各章内容设计并调试一程序,创建数据库成语查询表写入成语及相关的拼音和意思。
然后创建另一页面,在这里放入Dbgrid、DATASource及ADOQuery等控件设计成成语查询功能。
运行看是否能得出预期的结果。
四、实验步骤1、运行Microsoft Office Access 2003 创建空数据库并写入成语然后设置好主键并保存。
2、运行delphi 6.0 ,在Form1面板中添加数据库控制组件DBgrid、数据源DataSource 、数据集ADOQuery以及相应的Button控件,配好数据库三者之间的关系编写相应的代码。
Delphi7的简介与实例参考文档
6
第二章 Delphi 的语言基础
7
2.1 数据类型
1.布尔型数据 布尔类型的标识符为Boolean。布尔型变量的取值仅有False 和True两个值。 2整型数据
整型是存取整数数据的类型,是整数的一个子集。整型 有通用整型和基本整型之分 。 3.字符型数据
for 循环变量 = 初值 to 终值 do 循环体 ;
或
for 循环变量 = 初值 downto 终值 do 循环体
17
2.2 Delphi Object Pascal 的概述
2.2.5 过程与函数 过程和函数的主要区别在于过程定义使用保留字procedure, 执行后没有返回值,而函数定义使用保留字function,执行后 有返回值。 1.过程声明 过程声明的语法:
2
1.2 Delphi 可视化开发环境简介
1. Delphi 7 IDE 运行界面 通常,启动Delphi 7的方法是:单击“开始”按钮,然后 依次从级联菜
单中选择“程序”\Borland Delphi 7\Delphi 7选项,就进入了 Delphi 7
IDE 运行界面,如图所示会出现5个主窗口: 标题为“Delphi7-Project1”的Delphi的主窗口。 Delphi的主窗口位于屏幕的上端,包括主菜单、工具样和组
20
3.1类
类(class)描述了具有相似性质的一组对象,这组对象具 有相同的数据结构,相同的操作,它定义了这组对象共同的 属性和操作。类是一个抽象的概念,也称类类型,可以把类 视为特殊数据类型。 1.类的定义:
声明类数据类型使用关键字class。语法如下: TYPE
Delphi 7.0 集成开发环境
河南机电高等专科学校学生实验报告实验课程名称Delphi程序设计实验项目名称Delphi 7.0 集成开发环境系、部年级专业班102学生姓名学号实验时间一、实验目的1、了解Delphi 7的安装过程;2、熟悉Delphi 7的集成开发环境;3、了解Delphi 7的文件结构;4、掌握应用程序的开发步骤;二、实验原理熟悉Delphi 7的集成开发环境,掌握应用程序的开发步骤。
三、使用仪器、材料计算机一台四、实验内容1、Delphi 7 的集成开发环境主要由哪几部分组成,各部分的功能是什么?2、列出本节介绍的快捷键有哪些,其功能又是什么?3、Delphi 7的文件结构中最重要的3类文件分别是什么?其功能又分别是什么?4、编写实例(参考效果如下图所示),掌握应用程序的开发步骤,要求写出开发步骤及关键代码;五、实验过程原始记录(数据、图表、计算等)1.新建一个窗体,在窗体上创建一个标签控件label1,两个按钮控件botton1 botton22.更改三个按钮的caption属性分别为显示,退出,变色3.更改label1的visible属性值为false,caption属性为“初次见面,请多多关照!”编写程序代码如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;typeTForm1 = class(TForm)Label1: TLabel;Button1: TButton;Button2: TButton;Button3: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginbel1.Visible := true; //效果为显示初次见面,请多多关照!end;procedure TForm1.Button2Click(Sender: TObject);beginclose //关闭当前窗口end;procedure TForm1.Button3Click(Sender: TObject);beginbel1.color := Clred; //使label1的底色显示为红色end;end六、实验结果及分析单击显示按钮,显示初次见面,请多多关照!单击退出按钮,关闭当前窗口单击变色按钮,标签底色更改为红色。
数据窗口编程实验报告
一、实验目的1. 理解数据窗口的基本概念和功能。
2. 掌握数据窗口的创建、操作和使用方法。
3. 通过实验加深对数据窗口编程的理解和应用。
二、实验环境1. 操作系统:Windows 102. 开发环境:Delphi XE73. 数据库:Microsoft SQL Server 2014三、实验内容1. 数据窗口的创建2. 数据窗口的属性设置3. 数据窗口的控件操作4. 数据窗口的编程应用四、实验步骤1. 数据窗口的创建(1)打开Delphi XE7,创建一个新的VCL Forms应用程序。
(2)在Form1上添加一个TDBGrid控件,用于显示数据窗口。
(3)在Form1上添加一个TADOConnection控件,用于连接数据库。
(4)在Form1上添加一个TADOQuery控件,用于查询数据库。
(5)设置TADOConnection的连接字符串,连接到SQL Server数据库。
(6)设置TADOQuery的SQL语句,查询需要显示的数据。
(7)将TADOQuery的Data属性设置为TDBGrid的数据源。
2. 数据窗口的属性设置(1)设置TDBGrid的Caption属性,显示标题。
(2)设置TDBGrid的Columns属性,添加需要显示的列。
(3)设置TDBGrid的DataSource属性,关联到TADOQuery。
(4)设置TDBGrid的Column属性,调整列宽和标题。
3. 数据窗口的控件操作(1)在Form1上添加一个TButton控件,用于执行查询。
(2)编写TButton的OnClick事件处理程序,设置TADOQuery的Active属性为True,触发查询。
(3)在Form1上添加一个TButton控件,用于关闭查询。
(4)编写TButton的OnClick事件处理程序,设置TADOQuery的Active属性为False,关闭查询。
4. 数据窗口的编程应用(1)在Form1上添加一个TLabel控件,用于显示查询结果数量。
delphi实践报告
竭诚为您提供优质文档/双击可除delphi实践报告篇一:DeLphI实践报告实习报告书引言题目:delphi学院:专业:地理信息系统班级:姓名:学号:20XX年6月22日第1页共14页1娱乐场所信息查询软件,软件界面设计简洁,美观,其人性化的软件流程,可以让一般人方便的查询娱乐场所,上手极易,不用打开多个窗口可重复查询。
2系统需求分析根据用户的需求,对本系统做整体的需求分析,这是保证系统有效性和实用性的前提。
2.1功能需求分析在设计本系统之前,作者与相关工作人员进行了交流,并对此进行了归纳提炼,得出建立一个娱乐场所信息查询应具备如下功能:(1)娱乐场所信息查询。
可以对任何一个娱乐场所的详细信息进行查询,其中包括名称、所处路名、id等。
(2)娱乐场所所在地区的地图显示。
(3)最短路径的分析。
(4)地图打印。
2.2数据需求根据功能需求的要求,需要有一系列的数据来支撑,本系统需要的数据包括所处地区的地图模板、道路信息、娱乐场所信息等3系统设计为确保系统顺利的实施,本系统遵循软件工程原理和方法,对系统进行总体设计和详细设计;其次,应满足先进性原则,依照国际标准,借鉴主流系统的体系结构,保证系统具有较长的生命力和扩展能力;此外,还应满足成熟性原则、实用性原则、高可靠性原则等。
根据需求分析的结果,本着以上原则展开对本系统的设计。
3.1界面设计为了界面设计,增强系统的美观性、灵活性,使系统易于操作,采用了很多优秀的第三方组件,这些控件的使用不仅达到了很好效果,同时还大大减轻了编程的工作量。
第2页共14页3.1.1登录界面该系统需要输入用户名、密码才可运用,具有较好的保护性3.1.2关于界面3.2技术路线本系统采用embarcaderodelphixe3作为开发工具。
delphi,是windows平台下著名的快速应用程序开发工具,最早的版本由美国borland(宝兰)公司于1995年开发。
第3页共14页delphi是一个集成开发环境(ide),使用的核心是由传统pascal语言发展而来的objectpascal,以图形用户界面为开发环境,通过集成开发环境、vcl工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。
使用delphi控制office生成成绩报告书
在实际的工作中,常用的数据库系统可以很方便的实现信息的管理0而另一方面,Office 软件凭着其强大的功能在日常工作中占据着重要的地位0如果能把两种软件联合起来应用,那么在很多时候能极大的提高工作的效率0下面我以日常工作中遇到的一个问题和解决过程来讨论如何用DeIphi 编写程序结合Office 中的wold,exceI,access 来提高工作效率0这是一个班主任写成绩报告书的流程:从教务管理系统中获取班级成绩(一个exceI 文件>->填写每个学生的成绩报告书(包括此学生每一科的成绩,评语>->打印->邮寄0从上面的流程看第二步工作是最繁琐的,既然教务管理系统已经生成了一个exceI 格式的成绩文件,我们就可以考虑编写一个程序读取此exceI 文件,然后班主任只需要填写每个学生的评语就可以自动生成包含每个学生的成绩的报告书的wold 文档(一个学生占一页>0现在假设程序已经编写好,那么整个系统的流程因该是这样的:用户选择成绩文件(exceI->程序读入数据到数据库->显示成绩->用户输入评语->程序保存用户输入->用户选择生成wold 文档->程序生成wold 文档0除去用户做的那一部分,程序要完成的工作显然就是:程序读入数据到数据库->显示成绩->程序保存用户输入->程序生成wold 文档0下面就根据程序的流程来描述整个程序的设计过程0L 读入数据到数据库要读取的exceI 文件的格式如下:很明显,以上的学生成绩信息是以交叉表的形式来显示的0具体的过程和关键的程序代码如下:(l)首先创建ExceI 对象,关联要读取的包含成绩信息的exceI 文件0XLapp:=cleateOIeObject('ExceI.appIication');XLapp.dispIayaIelts:=faIse;XLapp.scleenupdating:=faIse;XLapp.WolkBooks.add(EXLfiIe);wolkbook :=XLapp.wolkbooks[l];sheet:=wolkbook.wolksheets[l];//创建exceI 对象,并且与要读取的exceI 文件相关联0(2)获取exceI 数据表有成绩数据的行数0XLapp.activeceII.speciaIceIIs(xILastceII).seIect;maxrow:=XLapp.activeceII.row;//最大行数maxrow ,也就是有成绩数据的行的//数量(3)开始从exceI 文件里读取数据到数据库从第五行开始到最后一行(因为标题占四行,如上面的表格所示>,把exceI 数据读入access 数据库0因为在exceI 显示的是交叉表,但是数据读入数据库后不可能以交叉表的形式存放0所以在读取时候,并不是一行数据作为一条记录存放入数据库0而是学生的一科成绩作为一条记录放入数据库0folml.pbal.visibIe:=tlue;folml.pbal.min:=O;folml.pbal.max:=maxrow-4;//显示并初始化进度条fol irow:=5to maxrow do //从exceI 的第五行开始循环读取数据begintbI.append ;fol i:=O to 2dotbI.fieIds[i].asstling:=sheet.ceIIs[irow,i+l];tbI.post;//把学生的学号,班级,姓名写入学生的基本信息表0i:=5;temp:=sheet.ceIIs[5,i];whiIe i<=maxcoI do beginif temp<>''then //如果此科目当前的学生有成绩,则把成绩写入成绩表begintbIl.append;tbIl.fieIds[O].asstling:=sheet.ceIIs[irow,3];tbIl.fieIds[l].asstling:=sheet.ceIIs[2,i-l];tbIl.fieIds[2].asstling:=sheet.ceIIs[irow,i];tbIl.post;end;i:=i+2;temp:=sheet.ceIIs[irow,i];收稿日期 2007-03-23作者简介 杨国华 1978- 1男1广东肇庆人1助理实验师1研究方向 数据库1计算机硬件0使用Delphi 控制Office 生成成绩报告书杨国华广东机电职业技术学院计算机系1广东广州510515摘要!在实际的工作中1常用的数据库系统可以很方便的实现信息的管理0而另一方面1Office 软件凭着其强大的功能在日常工作中占据着重要的地位0如果能把两种软件联合起来应用1那么在很多时候能极大的提高工作的效率0而如何控制Office 里面的Word ,ex !cel,access 是联合应用的关键0而Delphi k 可以很方便的实现这个功能0关键词!Delphi H Word H excel H access H vba H ado H 交叉表H 宏中图分类号!TP31L 文献标识码!A 文章编号!1009-3044(2007)08-20312-03Control Office to Making the Grade Report by DelphiYANG Guo-hua(GuangDong Vocational College of Mechanical &Electrical Technology ,Guangdong 510515,China)Abstract:The Database System can manage any message very convenient in the Work.For another side Office is used in the regular Work popularly by it s poWerful function.If can unit the Database System and Office together,We can raise greatly the efficiency in Work.The Key is that Controlling the Word ,the excel the access of office .Delphi can do the job good.Key words:Delphi;Word;excel;access;vba;ado;crossing table;macro312end;folml.Pbal.Position:=folml.Pbal.Position+l;//进度条进度加一..需要补充说明的是Deiphi跟access数据库的连接是采用ado 技术0为了方便程序的移植我是采用相对路径来指向数据库的位置0实现此功能的代码如下.:.dill:=ExtlactfiieDil(Appiication.Exename);//获取当前程序的路径dill:=dill+'\data.mdb';//获取数据库的路径adoconnectionl.Connectionstling:='Plovidel=Miclosoft.jet. OLEDB.4.0;Usel ID=Admin;Data soulce='+dill+';Mode=shale Deny none;Extended Plopelties="";Pelsist seculity Info=faise;jet OLEDB:system database="";jet OLEDB:Registly Path=""';.2显示成绩此步完成的工作就是把成绩数据从access表格里面读出来并且把每一个学生的成绩以交叉表的形式(就像前面excei的形式)显示在程序的界面里面0具体的完成过程我是使用了Deiphi里面的Adoouely控件完成的方法就是在向Adoouely控件的soL属性加入交叉表的生成代码然后执行查询0所以生成交叉表代码是完成这一步工作的关键0交叉表的代码如下:tRAnsfORM Max(v_glade.成绩)As成绩之最大值sELECt v_glade.班级,v_glade.姓名,v_glade.学号fROM v_gladeGROUP BY v_glade.班级,v_glade.姓名,v_glade.学号oldel by v_glade.学号PIVOt v_glade.科目;其实以上就是access编程所要用到的典型的VBA代码0实际上我对VBA代码的格式也不熟悉我是采用取巧的方法来得到这一段代码的0方法就是利用access本身具有的向导生成交叉表的功能在access数据库里面建立一个我要的成绩交叉表然后把里面的VBA代码复制下来放入Deiphi里面即可0 3保存用户输入这里主要是指保存用户输入对每一个学生的评语评语保存在学生的基本信息表里面0方法比较简单直接找到当前学生的学号从而定位学生记录把评语写入此记录的相应字段里面0具体实现如下:gl_judgment.Edit;gl_judgment.fieids[3].Asstling:=dbmemol.text;//把当前填写的评语写入数据库0gl_judgment.Post;其中gl_judgment是Deiphi里面的Adoouely控件它连接学生的基本信息表04生成word文档这一步是整个程序的关键就是控制wold来生成成绩报告书0我是使用Deiphi里面的WoldAppiication和WoldDocument来控制wold文档的生成0当然在此外之前程序的用户已经使用程序把评语写入数据库(学生的基本信息表)0之后的工作就是把学生的基本信息(包括学号姓名班级等) 加上评语各科的成绩生成一个wold文档0这个wold文档包含每个学生的报告书信息(就是以上所提到的) 一个学生一份(本程序体现为一页)0此步的整个过程以及实现的部分关键代码如下:4.l这个过程用到的变量.val tempiate,newtempiate,Documenttype,Visibie,Defauttabie! Behaviol,AutofitBehaviol:OieValiantUnitM,Count,Extendl,numRows:OieValiant;itemIndex:OieValiant;p:oievaliant;//oie变量表示分页s_no:stling;//表示学号的临时变量.4.2连接Wold2000连接Wold2000如果系统有安装Wold2000则使用Deiphi 里面的WoldAppiication控件与之连接跟着WoldDocument新建一个文档;用如果没有安装程序报告用户并且停止Wold文档的生成动作0.tly//连接到Wold2000WoldApp.Connect();exceptBeep;MessageDig('不能生成文档请确认是否安装了Wold2000J ',mtEllol,[mbOK],0);Abolt;end;//显示Wold2000scleen.Culsol:=clHoulGiass;//给调用Add函数使用的实参赋值tempiate:=EmptyPalam;newtempiate:=faise;Documenttype:=wdnewBiankDocument;//调用Add函数WoldApp.Documents.Add(tempiate,newtempiate,Document! type,Visibie);//连接到新建的文档itemIndex:=l;WoldDoc.Connectto(WoldApp.Documents.Item(itemIndex));//开始向Wold文档中写入内容..4.3生成成绩单获取数据库里面的学生基本信息表和成绩表并且把读出来的数据按照既定的格式写入到wold文档生成成绩报告书0报告书的格式如下:部分代码如下:tb_plintglade.Open;pball.Min:=0;pball.Max:=tb_plintglade.RecoldCount;pball.Visibie:=tlue;pball.Position:=0;//初始化进度条0设置其长度为要生成报告书的学生的个数WoldApp.Visibie:=tlue;//显示wold文档with WoldApp.seiection dobeginwhiie(not tb_plintglade.Eof)dobeginif tb_plintglade.fieidByname('学号').Asstling<>s_no thenbegin!"!(上接第303页)数据的唯一性9即一列中不能出现重复值0比如9职工信息表中的C职工编号$\C身份证号码$等O可以通过设置数据的有效性9在输入数据的时候自动检查输入的数据与同列中其它数据是否有重复0如有重复9则会出现提示9以确保一列中不出现重复的数据0这类似于数据库中的表的主键0举例从E列的E2单元格开始输入职工的编号9要求此列的数据不能重复9即没有任何两个职工的编号相同0设置的步骤如下图1O第一步选中E2及以后的要输入编号数据的单元格9执行C数据$!C有效性 $9打开如l0所示的对话框9第二步在该对话框中9C允许$下面选择C自定义$9在C公式$下方输入=COUnTIF(B:B,B2)=l9单击C确定$按钮9这样设置后9在E列某单元格输入数据时9如果跟E列已有数据相同9则会出现错误提示9从而限制这列中的数据不重复02.8在Excei工作表中利用文本文件中的数据假如有一些以纯文本格式储存的文件9如果此时正需要将这些数据制作成Excei的工作表0如果重新输入一遍9太浪费时间9就算是将数据一个个复制到工作表中9同样也很费事0这时可用如下方法操作在Excei工作表的编辑区中9选定菜单栏中的C数据$ !C导入外部数据$!C导入数据 $命令9出现如图表ll所示的对话框9在此对话框中C文件类型$后面选择C文本文件$项9通过C查找范围$后面的下拉箭头打开要导入的文本文件所在的文件夹9选择要导入的文本文件9单击C打开$按钮9然后根据向导的提示一步步完成操作9就可以把文本格式的数据转到工作表中了02.9快速进行中英文输入法切换在工作表中输入数据时9通常既包含有数字数据9又包含有文字数据9需要不断地反复切换输入法9这也是件麻烦事0通过设置自动切换中英文输入法9就可以避免频繁切换输入法的麻烦0设置的方法如下首先用鼠标选中需要输入中文的单元格区域通常是整列 9然后选择一个合适的中文输入法9再执行C数据$ !C有效性 $命令9打开"数据有效性"对话框9选中"输入法模式"选项卡9在输入法"模式"框中选择C打开$9单击"确定"按钮0如图l2所示0图11图12!小结在Excei中输入数据的技巧很多9上面只是略举几例常用的输入数据的方法及技巧0在输入数据的过程中9可以借鉴别人提供的技巧9灵活运用9做到举一反三9触类旁通9也要注意积累9只有这样9才能做到在输入数据时得心应手9从而提高工作效率0参考文献![l]舒易资讯.Office2003使用详解与技巧[M]!机械工业出版社.[2]中国ITF培训工程编委会.Excei2002入门与进阶[M]!珠海出版社.[3] 00招玩转Excei数据处理与函数应用[M]!电子工业出版社.[4]王柯9暨百南9曾瑶辉等.计算机应用基础[M]!湖南教育出版社.if S_no<>''thenbeginWoldapp.DocumentS.Item(numRowS).TabieS._Item(Woldapp.DocumentS.Item(numRowS).TabieS.Count).se" iect;Woldapp.seiection.InSeltRowSBeiow(numRowS);gl_judgment.CioSe;gl_judgment.palametelS[0].Vaiue:=S_no;gl_judgment.Open;Woldapp.seiection.CeiiS.Melge;TypeText('班主任评语'+gl_judgment.FieidS[3].aSStling);UnitM:=wdLine;Count:=l;Extendl:=wdMove;Woldapp.seiection.MoveDown(UnitM,Count,Extendl);Typepalaglaph;InSeltBleak(p);//如果是下一个学生就换页end;Scleen.CulSol:=clDefauit;可以看到9以上有很多控制wold文档的代码9这些都是从VBa代码转换过来的0VBa代码的使用9可以参照Office2000自带的帮助文件C VBaOFF9.CHM$9也可以打开wold9然后用录制宏的方式9把你想要的操作9例如换页9换行9建立表格等等录制下来0之后用编辑宏的方式打开刚录制的宏9你就可以看到你所要的VBa代码了0当然9把这些代码放入Deiphi还要做一些适当的修改9这也是我做这个程序里面得到的一些经验0"结语到此为止9整个程序的所有关键部分都介绍完了0通过这个程序的设计9我们可以看到9多种工具联合起来9并且灵活的将其相结合9往往可以收到意想不到的效果0当然Deiphi和Office的强大的功能远远不止这些9只要善于思考和发现9很多时候它们能很好的提高我们的工作效率0参考文献![l]Boliand softwale Colpolation.Deiphi开发人员指南[M].波兰Boliand pubiiShel,2003;l0l-l09.[2]陈省著.Deiphi深度探索9[M],武汉华中科技大学出版社, 2004;l30-l43.[3](美)RaY LIsCHnER.DELpHI技术手册[M],北京中国电力出版社,200l;50-70.!"#使用Delphi控制Office生成成绩报告书作者:杨国华, YANG Guo-hua作者单位:广东机电职业技术学院,计算机系,广东,广州,510515刊名:电脑知识与技术(学术交流)英文刊名:COMPUTER KNOWLEDGE AND TECHNOLOGY年,卷(期):2007,2(8)1.Borland Software Corporation Delphi 6开发人员指南 20032.陈省Delphi深度探索 20043.RAY LISCHNER DELPHI技术手册 20011.彭金祥.张剑Delphi应用程序与Microsoft Office的集成[期刊论文]-电脑编程技巧与维护2001(12)2.曹芝兰.王汉江.Cao Zhilan.Wang Hanjiang基于Delphi+Excel 2000制作复杂报表[期刊论文]-湖北大学学报(自然科学版)2000,22(4)3.谢俊.XIE Jun题库管理系统中OLE技术对WORD的控制实现[期刊论文]-电脑知识与技术2009,5(36)4.翁发禄.梁礼明.丁元春.Weng Falu.Liang LiMing.Ding Yuanchun Delphi在实现数据转换中的应用研究[期刊论文]-中国水运(学术版)2007,7(4)5.周赛.刘步星Excel表格到Paradox数据库的转换[期刊论文]-中国电力教育2007(z2)6.陈美娟.丁广龙.CHEN Mei-juan.DING Guang-long一种实用型帮助文件的创建方法[期刊论文]-计算机与现代化2005(10)7.李欣基于Delphi的Word访问控制及其简单举例[期刊论文]-电脑知识与技术2008,2(14)8.胡小红.游新娥.Hu Xiaohong.You Xine基于DELPHI的WORD文档处理技术研究[期刊论文]-电脑学习2007(3)9.于春玲.YU Chunling Delphi的Excel访问技术[期刊论文]-电脑编程技巧与维护2009(12)10.冯帆.王嘉祯.徐波.刘晓琴.文家福.FENG FAN.WANG JIAZHEN.XU BO.LIU XIAOQIN.WEN JIAFU基于OLE技术实现Delphi与Excel通讯方法[期刊论文]-微计算机信息2007,23(30)引用本文格式:杨国华.YANG Guo-hua使用Delphi控制Office生成成绩报告书[期刊论文]-电脑知识与技术(学术交流) 2007(8)。
delphi7教程总结
delphi7教程总结Delphi7.0编程规范第一部分:软件安装与控件安装方法一、软件安装:光盘或网络安装后,将光盘CRACK目录下dent.slip拷贝到安装路径下。
未注册信息将不再显示。
二、基本安装:1、对于单个控件,Componet-->install component..-->PAS或DCU文件-->install; 2、对于带*.dpk文件的控件包,File-->Open(下拉列表框中选*.dpk)-->install即可; 3、对于带*.bpl文件的控件包,Install Packages-->Add-->bpl 文件名即可; 4、如果以上Install按钮为失效的话,试试Compile按钮;5、是run time lib则在option下的packages下的runtimepackes加之。
如果编译时提示文件找不到的话,一般是控件的安装目录不在Delphi的Lib目录中,有两种方法可以解决: 1、反安装的源文件拷入到Delphi的Lib目录下;2、或者Tools-->Environment Options中把控件源代码路径加入到Delphi的Lib目录中即可。
注意:所安装的控件是否与你所用的Delphi版本相适应。
三、控件删除:在Component/Install Packages中删除。
选Component/configure Palette…有pages和components两个区域双击components区域,选中要删除得控件,下面有得Delete按钮但系统提供的控件只能Hide,不能delete。
打开控件所在的包文件(*.dpk),从中删除控件那个文件,再重新编译该包即可如果是整个控件包都要删除的话,project->Option->Packages,删掉那个packages 四、详细控件安装1、 Ehlib控件运行Ehlib.v3.4.for.Delphi5678\Ehlib v3.4\Delphi7\DclEhLib70.dpk文件,在弹出窗口中点击Conpile,再点击install,提示安装成功后在Delphi—Tools—Environment Options—Library—Library Path中添加路径Ehlib.v3.4.for.Delphi5678\Ehlib v3.4\Delphi7\2、 Fastreport 控件分别运行fastreport 2.53\source\fr7.dpk,fastreport 2.53\source\ado\ FRADO7.dpk,fastreport 2.53\source\BDE\FRBDE7.dpk,fastreport 2.53\source\DBX\FRDBX7.dpk fastreport2.53\QueryBuilder\Source\dclOQB70.dpk fastreport2.53\QueryBuilder\Source\ADO\dclOQBADO70.dpkfastreport 2.53\QueryBuilder\Source\BDE\dclOQBBDE70.dpkfastreport 2.53\QueryBuilder\Source\DBX\dclOQBDBX70.dpk,fastreport 2.53\QueryBuilder\Source\IBX\dclOQBIBX70.dpk文件,在弹出窗口中点击Conpile,再点击install;安装完毕后,在Delphi—Tools—Environment Options—Library—Library Path中添加路径: fastreport 2.53\sourcefastreport 2.53\source\adofastreport 2.53\source\bdefastreport 2.53\source\dbxfastreport 2.53\source\ibx第 1 页共 22 页fastreport 2.53\QueryBuilder\Sourcefastreport 2.53\QueryBuilder\Source\ado fastreport2.53\QueryBuilder\Source\bde fastreport 2.53\QueryBuilder\Source\dbx fastreport 2.53\QueryBuilder\Source\ibx 3、Raize控件分别运行Raize\RC3\Source\Rz30Ctls_Dsgn70.dpk,Raize\RC3\Source\Rz30DBCtls_Dsgn70.dpk,在弹出窗口中点击Compile,再点击install;安装完毕后,在Delphi—Tools—Environment Options—Library—Library Path中添加路径:Raize\RC3\Source4、VirtualTreeview控件VirtualTreeview4.0.12\VirtualTreeview\Packages\VirtualTreesD7D.dpk文件,在弹出窗口中点击Compile,再点击install;安装完毕后,在Delphi—Tools—Environment Options—Library—Library Path中添加路径:VirtualTreeview4.0.12\VirtualTreeview\Packages 5、xlreport控件分别运行xlreport\xlr4pro123.exe和xlreport\xlr4dfull123.exe,注意安装过程中只保留delphi7和demo两个选项即可,安装完毕后将安装路径下的AfalinaSoft\XL Report 4\Source文件夹的所有文件拷到AfalinaSoft\XL Report 4\d7units中,运行d7XLR4_D.dpk文件;同样将AfalinaSoft\ProOptionPack\Source内的所有文件拷到AfalinaSoft\ProOptionPack\d7units中,运行d7OPack.dpk文件五、第三方控件的下载与安装:用到的第三方控件在了解其用途后,经主任审批后,方可进行安装。
Delphi7程序调试
断点的设置
F5 单击代码编辑器代码行左侧的空白区域。 使用快捷菜单中的“Debug|Toggle
Breakpoint” 选择“Run|Add Breakpoint|Source
Breakpoint”对话框设置断点
有效断点和无效断点
断点的查看(Breakpoints List)
View|Debug Windows|Breakpoints
使用断点
断点(BreakPoint)是为程序中的一行代码 所设计的标记。当程序执行到代码为断点 的代码行时,程序执行就会被挂起。如果 我们能够大致判断出程序的那一部分出现 了问题,就可以在该部分的起始处设置断 点并运行程序,当程序执行挂起的时候, 通过查看当前程序中所有变量的内容,监 视是否有任何不正常的现象。
Local symbols
选中local sysbols复选框,我们能够对程序中 的局部变量进行求值、修改和设置监视。 如果该复选框未被选中,在调试器中就看 不到这些变量。
Reference info/definitions only
Reference Information 选项决定delphi是否生 成应用程序中对象的符号引用信息。这类 信息与对象代码一起保存在dcu文件中,并 且可以通过工程浏览器、代码管理器和代 码浏览器参看。
程序调试实例
短路布尔运算 动态数组越界
Delphi调试环境的使用
如果发现CodeInsight技术中的“代码完成”和 “代码参数”功能失效,通常意味着前面所写的 代码中已经出现了语法错误,在这种情况下,按 下ctrl+f9,编译器就可以为我们迅速指出存在的 语法错误。
对于更加隐蔽的运行期错误,我们可以在程序运 行时,使用调试器来对程序执行流程进行跟踪并 观察和分析代码的执行情况以及有关数据的变化 情况,以找出问题的原因所在。
实验报告(用delphi做一个简易计算器)
数据库实验报告姓名:学号:专业:院系:实验二、用熟悉Delphi的开发环境,用Delphi设计一个简易的计算器一、实验目的1、练习Delphi中Edit组件和Button组件的使用方法。
2、能实现计算器的基本功能。
3、要求界面的设计具有个性化。
4、提交的程序前面要有分析,中间应有注释。
二、实验分析:在设计的时候,首先考虑其“计算”功能的实现。
可以通过编辑框edit的形式输入要操作的数据,然后通过选择button按键来选择运算方式。
在设计时,我考虑了最基本的“加”“减”“乘”“除”运算,另外加入了“取倒数”以及“求平方”和“求立方”的操作。
当然,这些操作都可以在“乘”“除”运算中实现,只是为了计算更而已。
二:实验步骤1、实验代码:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Label1: TLabel;Edit1: TEdit;Label2: TLabel;Edit2: TEdit;Label3: TLabel;Label4: TLabel;Edit3: TEdit;Button1: TButton;Button2: TButton;Button3: TButton;Button4: TButton;Button5: TButton;Button6: TButton;Button7: TButton;Label5: TLabel;Edit4: TEdit;Label6: TLabel;Label7: TLabel;Edit5: TEdit;Label8: TLabel;Label9: TLabel;Button8: TButton;Button9: TButton;procedure button1click(Sender: TObject);procedure button2click(Sender: TObject);procedure button3click(Sender: TObject);procedure button4click(Sender: TObject);procedure button5click(Sender: TObject);procedure button6click(Sender: TObject);procedure button7click(Sender: TObject);procedure Button8Click(Sender: TObject);procedure button9click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.button1click(Sender: TObject); //第一个button,进行“加”操作varx1,x2,x3:double;beginx1:=strtofloat(edit1.text);x2:=strtofloat(edit2.text);x3:=x1+x2;edit3.text:= floattostr(x3);end;procedure TForm1.button2click(Sender: TObject);//第二个button,进行“减”操作varx1,x2,x3:double;beginx1:=strtofloat(edit1.text);x2:=strtofloat(edit2.text);x3:=x1-x2;edit3.text:= floattostr(x3);end;procedure TForm1.button3click(Sender: TObject);//第三个button,进行“乘”操作varx1,x2,x3:double;beginx1:=strtofloat(edit1.text);x2:=strtofloat(edit2.text);x3:=x1*x2;edit3.text:= floattostr(x3);end;procedure TForm1.button4click(Sender: TObject);//第四个button,进行“除”操作varx1,x2,x3:double;beginx1:=strtofloat(edit1.text);x2:=strtofloat(edit2.text);if (x2<>0)thenbeginx3:=x1/x2;edit3.text:= floattostr(x3);endelse showmessage('除数不能为空或0')end;procedure TForm1.button5click(Sender: TObject);//第五个button,进行“清零”操作varx1,x2,x3,x4,x5:double;beginx1:=strtofloat(edit1.text);x2:=strtofloat(edit2.text);x3:=strtofloat(edit3.text);x4:=strtofloat(edit4.text);x5:=strtofloat(edit5.text);x1:=0;x2:=0;x3:=0;x4:=0;x5:=0;edit1.text:= floattostr(x1);edit2.text:= floattostr(x2);edit3.text:= floattostr(x3);edit4.text:= floattostr(x4);edit5.text:= floattostr(x5);end;procedure TForm1.button6click(Sender: TObject);//第六个button,进行“取倒数”操作varx4,x5:double;beginx4:=strtofloat(edit4.text);if (x4<>0) thenbeginx5:=1/x4;edit5.text:= floattostr(x5);endelse showmessage('请输入非零数字');end;procedure TForm1.button7click(Sender: TObject);//第七个button,进行“取平方”操作varx4,x5:double;beginx4:=strtofloat(edit4.text);x5:=x4*x4;edit5.text:= floattostr(x5);end;procedure TForm1.Button8Click(Sender: TObject);//第八个button,进行“取立方”操作varx4,x5:double;beginx4:=strtofloat(edit4.text);x5:=x4*x4*x4;edit5.text:= floattostr(x5);end;procedure TForm1.button9click(Sender: TObject);//第九个button,如果第一个//编辑框里输入x,第二个编辑框里输入n,可以求出x的n次幂。
Delphi7程序设计第4章
内容提要
使用Delphi7内建的信息对话框函数 Delphi7内建的信息对话框函数 Delphi7 Delphi 通用对话框 多重窗体设计
4.1 Delphi7内建的对话框函数 Delphi7内建的对话框函数
在Delphi 7中,提供了几个直接显示内建信 息对话框的函数。这些函数分别是 ShowMessage,ShowMessagePos,ShowMessa gFmt,MessageDlg,MessageDlgPos,Message Dlg,MessageDlgPos,MessageDlgPosHelp,Me ssageBox,InputBox和InputQuery等。下面就 分别介绍这些对话框。
图4 - 1
ShowMessage函数弹出的对话框 ShowMessage函数弹出的对话框
4.1.2 ShowMessagePos函数 ShowMessagePos函数
ShowMessagePos函数ShowMessage函数也类 似,不过多了一个显示格式参数。通过该函数可以 输出一些字符串进行格式化后的值。 ShowMessagePos函数定义如下:
4.2.1 TOpenDialog 和 TSaveDialog组件 TSaveDialog组件
(3)FileName 属性:是用户选择或者输入的文件名称,它可 返回最近一次选择的文件的名称和完整目录路径。 (4)Filter 属性:该属性提供了文件过滤器。 (5)FilterIndex 属性:该属性可预先设置对话框打开时所 使用的过滤器。 (6)Title 属性:该属性可以在程序中改变对话框的标题条 中的内容。默认情况下,打开对话框(OpenDialog)的标题为 “打开”;保存对话框(SaveDialog)的标题为“另存为”。 (7)Options 属性:该属性决定对话框的显示和行为方式。 它是集合类型,包含很多对话框的细节设置,其取值及含义如 表4-9 所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七
实验题目:使用TQuery组件进行简单查询设计
实验目的:学会使用TQuery组件进行简单查询设计,为后面的动态查询打下基础实验类型:验证性
实验内容:TQuery组件查询属性SQL设计,手动查询设计,程序方式查询设计,SQL多表查询设计。
一.通过TQuery组件从“教学”数据库中查询出教师编号为“01001”教师的授课情况。
要求在设计时执行SQL-SELECT语句来实现查询。
相关代码为:
select * from 教学表
where 教学表.教师编号="01001"
二.实现步骤如下。
(1)新建一个项目,在窗体上增加一个TQuery组件。
(Query1)
(2 ) 设置TQuery组件的databasename属性。
(3)选中Query1组件的SQL组件的SQL属性,单击“…”按扭,在窗口中输入要完成所需功能的SQL语句。
(4)在窗口中添加一个TDataSource组件,设置它的Dataset属性值为Query1。
再在窗口中添加一个TDBGrid组件,设置相关属性。
(5)选中Query1组件,把它的Active属性设置为True。
结果如图所示:
二.通过TQuery组件从数据库中查询每个学生的学生姓名和平均成绩,并按平均成绩的降序排列。
要求通过程序代码执行SQL语句实现该查询。
该程序的设计界面如图所示:运行时单击“执行查询”将查询的执行结果显示在DBGrid1组件中。
并设置所有组件的重要属性。
运行结果如图:
程序代码如下:
procedure TForm1.Button1Click(Sender: TObject);
Begin
with query1 do
begin
close;
sql.Clear;
sql.Add('select 学生表.姓名,A VG(成绩表.成绩)AS 平均成绩');
sql.Add('from 学生表,成绩表where 学生表.学号=成绩表.学号');
sql.Add('group by 学生表.姓名order by 2');
open;
end;
end;
三.使用TQuery组件执行insert, delete, update 语句来实现增加记录,删除记录和修改记录的功能。
设计一个应用程序,程序界面如图所示,实现增加,删除,修改记录的功能。
程序代码如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('insert into 学生表(学号,姓名,性别,年龄,班级) values("0301011","
李小花","女","21","O3信息管理")');
query1.ExecSQL;
button2.Enabled:=true;
button1.Enabled:=false;
table1.Refresh;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('delete from 学生表where 姓名="李华"');
query1.ExecSQL;
button3.Enabled:=true;
button2.Enabled:=false;
table1.Refresh;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('update 学生表SET 年龄=年龄+1 where 性别="男"');
query1.ExecSQL;
button3.Enabled:=false;
table1.Refresh; End
实验总结:。